使用ajax和jQuery

时间:2015-07-27 03:30:36

标签: javascript php jquery ajax

我正在使这个应用程序练习异步网站,它所做的只是使用jQuery和PHP以表格格式显示网站上数据库表的内容。

一切都很完美,除了我想在每个<上添加一个按钮。 tr>单击时删除数据库上的相应条目,但是,我似乎无法完成它。我已经完成了我所使用的所有内容的文档,并且没有看到问题所在。这是我的代码:

HTML:

<div class="row">
    <div class="col-lg-12" id="table_container">
        <table class="table table-striped" id="result_table">

        </table>
    </div>
</div>

该表是在一个由ajax调用的单独的PHP文件上创建的,这是相关的循环:

while ($places = mysqli_fetch_array($result)) {
    echo "<tr>";
    echo "<td>". $places ['ID']."</td>";
    echo "<td>". $places ['NAME']."</td>";
    echo "<td>". $places ['CHAIRS']."</td>";
    echo "<td>". $places ['CREATED']."</td>";
    echo '<td>
              <button class="btn btn-default deleteWaitlist" type="submit" name="' . $places['ID'] . '">X</button>
          </td>';
    echo "</tr>";
}

所有按钮都是使用正确的名称&#39;创建的。在最终的html(即auto_increment数字)上。

jQuery的:

$(".deleteWaitlist").click(function(){
        console.log("click on .deleteWaitlist");
        // Get the varible name, to send to your php
         var i = $(this).attr('name');
            $.post({
                url: 'deleteWaitlist.php', 
                data: { id : i}, 
                success: function(result){
                    console.log("success" + result);
                }
            });
    });

正如我所说,有点像ajax。如果我错了,请更正我:这会调用deleteWaitlist.php并发布参数&#39; id&#39;价值&#39; $(this).attr(&#39; name&#39;)&#39;这是数据库中的auto_increment值,对于每个条目应该是不同的。

deleteWaitlist.php

$sql = "DELETE FROM waitlist WHERE id=" . $_POST[id] . "";
mysqli_query($c,$sql);

这很简单,不是吗?你能帮我找到错误吗?也许像(int)$ _ POST [id]某处?我发誓我到处都试过。

编辑:奇怪的是,我甚至没有得到控制台日志&#34;点击.deleteWaitlist&#34;当我点击按钮时,就好像我根本没有点击它一样。可能发生什么?我也更改了id&#34; deleteWaitlist&#34;因为它似乎是最佳实践。

1 个答案:

答案 0 :(得分:4)

似乎输出html中有多个删除按钮,jQuery在查询ID时只匹配一个元素。

尝试在删除按钮上使用CLASS而不是ID。

while ($places = mysqli_fetch_array($result)) {
  echo "<tr>";
    echo "<td>". $places ['ID']."</td>";
    echo "<td>". $places ['NAME']."</td>";
    echo "<td>". $places ['CHAIRS']."</td>";
    echo "<td>". $places ['CREATED']."</td>";
    echo '<td>
      <button class="btn btn-default deleteWaitlist" type="submit" name="' . $places['ID'] . '">X</button>
    </td>';
  echo "</tr>";
}

jQuery的:

$(".deleteWaitlist").click(function(){
    console.log("click on .deleteWaitlist");
    // Get the varible name, to send to your php
     var i = $(this).attr('name');
        $.post({
            url: 'deleteWaitlist.php', 
            data: { id : i}, 
            success: function(result){
                console.log("success" + result);
            }
        });
});