我想创建一个程序,我可以使用带有ajax的按钮删除mysql记录。我的问题是我不知道如何将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;
}
}
任何帮助将不胜感激。感谢
答案 0 :(得分:0)
HTTP重定向只是说“你正在寻找的东西?它实际上就在那里。”
它不会让浏览器停止使用XHR处理它并开始处理它就像你跟着链接一样。
index.php
的内容将位于transport.responseText
。
如果您想将浏览器发送到新页面,请不要使用Ajax。
答案 1 :(得分:0)
试试这个会起作用:
由于AJAX发生在“幕后”(可以这么说),你的重定向只会中断对你的javascript处理程序的响应。所以PHP现在无法重定向您的浏览器,javascript
可以。因此,请使用javascript
重定向用户。
您需要返回该网址,并让您的回调将浏览器踢到新位置。
“你正在进行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
}
?>