Как я могу передать данные MySQL в качестве параметра AJAX

Я хочу создать программу, где я могу удалить записи MySQL, используя кнопку с AJAX. Моя проблема в том, что я не знаю, как передать данные mysql в качестве параметра ajax, поэтому, если они совпадают с запросом в файле php, они будут удалены. Я создал один только с php, но это статическая программа, я хочу, чтобы она была динамичной с ajax.

index.php:

    <?php

require_once 'dbconfig.php';

$query = $con->query("SELECT * FROM statuspost ORDER BY id DESC");

while($i = $query->fetch_object()){

echo $i->post ?><button onclick='ajaxWallpost('.<?php
$i->id ?>.')'>Remove</button>

<?php
}
?>

<script src='https://ajax.googleapis.com/ajax/libs/prototype
/1.7.2.0/prototype.js'></script>
<script>

function ajaxWallpost(status){

new Ajax.Request('wallpost.php?type=post&
id='+status, {
method:'get',
onSuccess: function(transport) {

},
onFailure: function() { alert('Something went
wrong...'); }
});

}

</script>

wallpost.php:

<?php

require_once 'dbconfig.php';

if(isset($_GET['id'], $_GET['type'])){

$post = $_GET['type'];
$id = (int)$_GET['id'];

switch($post){

case 'post':
$con->query("DELETE FROM statuspost WHERE id={$id}");
break;

}

}

Любая помощь будет оценена. Спасибо

1

Решение

Попробуйте это, это будет работать:

Поскольку AJAX происходит «за кулисами» (так сказать), ваше перенаправление просто прервет ответ на ваш обработчик javascript. Так что PHP не может перенаправить ваш браузер сейчас, javascript Можно. Так что используйте javascript перенаправить пользователя.

Вам нужно будет вернуть URL, и ваш обратный вызов отправит браузер в другое место.

«Вы делаете вызов ajax — заголовок php перенаправит ответ ajax … а не страницу, на которой сейчас сидит пользователь. Вам придется изменить свой код JavaScript в клиенте, чтобы изменить местоположение.«

Перенаправление JavaScript так же просто, как window.location.href = «Http: // MyLocation«;

Решение вашей проблемы с Ajax и Javascript:

<script>

function ajaxWallpost(status){

new Ajax.Request('wallpost.php?type=post&id='+status, {
method:'get',
onSuccess: function(transport)
{
window.location.href = "index.php";
},
onFailure: function()
{
alert('Something went wrong...');
}
});
}
</script>

Решение вашей проблемы без Ajax и Javascript:

 <?php

require_once 'dbconfig.php';

if(isset($_GET['id'], $_GET['type'])){

$post = $_GET['type'];
$id = (int)$_GET['id'];

switch($post){

case 'post':
$con->query("DELETE FROM statuspost WHERE id={$id}");
break;

}

}

$query = $con->query("SELECT * FROM statuspost ORDER BY id DESC");

while($i = $query->fetch_object())
{
?>

<a href="index.php?id=<?php $i->id ?>&type=post>Remove</a>

<?php
}
?>
0

Другие решения

HTTP-перенаправление просто говорит: «То, что вы искали? Это на самом деле там».

Это не заставит браузер перестать обрабатывать его с помощью XHR и начать обработку, как если бы вы перешли по ссылке.

Содержание index.php будет в transport.responseText,

Если вы хотите отправить браузер на новую страницу, не используйте Ajax.

0

По вопросам рекламы [email protected]