使用ajax将信息传递给PHP

时间:2012-10-05 14:07:09

标签: php jquery .post

我已经创建了一个js函数来使用ajax从数据库中删除数据。它非常基本,但我希望在我添加其他功能之前让它工作:

function removeAd(ad_id) {

    $.post('remove.php', {id: ad_id});

};

我使用php构建页面并创建使用此功能的链接:

<ul id='categoryorder'>

<?php while ($item = mysqli_fetch_array($r)) { ?>

<li id="advert_<?php echo $item['display_id'] ?>"><div class="<?php echo $item['ad_type']?>"><a href="javascript:removeAd('<?php echo $item['display_id'] ?>')" >Remove</a></div></li>

<?php } ?> 

</ul>

它构建页面正常并在div中创建删除链接,其中包含javascript的href:removeAd(id),id为与数据库中该div相关的id,例如:

<li id="advert_5"><div class="banner"><a href="javascript:removeAd('5')" >Remove</a></div></li>

最后这应该发送到remove.php脚本,该脚本实际上从数据库中删除了具有该ID的条目

<?php

require ('Mysql_Connect.php');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $q = "DELETE FROM st_display WHERE display_id = {$_POST['id']}";
    $r = @mysqli_query ($dbc, $q);

}

?>

我对此非常陌生,所以我很准备被告知我犯了一个愚蠢的错误,或者说这永远不会奏效!但是我们将非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您的查询非常适合进行良好的SQL注入 但这不是重要的,如果你试图做echo $q它会返回什么东西吗? 在console.log(ad_id);之前$.post查看您是否也发送数据。

答案 1 :(得分:0)

您在;语句末尾缺少echo

<li id="advert_<?php echo $item['display_id']; ?>"><div class="<?php echo $item['ad_type']; ?>"><a href="javascript:removeAd('<?php echo $item['display_id']; ?>')" >Remove</a></div></li>