我正试图从JQuery中的手风琴中删除一行,然后用删除来更新我的数据库。到目前为止,手风琴上那一排的去除效果很好。然后,我试图获取被删除行的索引,并将其发布回同一页面,这样它就可以运行MySQL查询来删除数据库中的行,然后在删除该行后从数据库中重新加载手风琴。
我的JavaScript受到限制,所以我认为我没有正确地传递索引?
谢谢你的帮助。
<?PHP
if(isset($_POST['id'])){
$id = intval($_POST['id']);
mysql_query("DELETE FROM `$db_name`.`$tbl_3` WHERE id='$id'");
unset($_POST['id']);
header("Location: ".$siteurl."messenger.php");
}
?>
<SCRIPT>
$(function(){
$( "#inbox" ).accordion({
collapsible: true,
icons: { "header": "ui-icon-plus", "headerSelected": "ui-icon-minus" },
active: false
});
$('#myClicker').click(function() {
var parent = $(this).closest('DIV');
var head = parent.prev('DIV');
parent.add(head).fadeOut('slow',function(){$(this).remove();});
var index = jQuery(this).find("H4").index(ui.newHeader[0]);
$.post('messenger.php', { id: index }, function(data) {});
});
});
</SCRIPT>
这就是我显示数据库数据的方式。
<DIV id="inbox">
<?PHP
$sql="SELECT * FROM `$tbl_3` ORDER BY id DESC";
$result = mysql_query($sql);
while ($row=mysql_fetch_row($result))
{
?>
<DIV>
<H4><A href="#"><?PHP echo "".$row[3]."";?></A></H4>
</DIV>
<DIV>
<P><?PHP echo "".$row[4]."";?></P>
<INPUT type="button" id="myClicker" value="delete"/>
</DIV>
<?PHP
}
?>
</DIV>
我对这类事情使用了完全不同的方法。
我所做的是制作一个php函数/文件,为我编译accordeon、menu、table、div,当我需要更新它时,我只需通过对生成器的ajax调用重新加载容器div的内容。
这样,我就省去了所有的猜测,只需要向php脚本传递一个值。然后这个脚本也可以做数据库的工作。
尝试这个
$('#myClicker').click(function() {
var parent = $(this).closest('DIV');
var head = parent.prev('DIV');
var index = parent.prev('DIV').find("H4").index(ui.newHeader[0]);
parent.add(head).fadeOut('slow',function(){$(this).remove();});
$.post('messenger.php', { id: index }, function(data) {});
});
});