通过单击从数据库中删除特定条目

时间:2015-07-26 17:19:23

标签: javascript php jquery ajax

我正在为朋友建立一个网络应用程序,这是我的第一个异步网站,我正在学习很多很酷的东西,但有一些细节让我很难过。

这是一般的想法:

这个简单的应用程序使用PHP和jQuery从数据库中获取特定的表,并在页面上异步显示它们。这个特定的表(一个等候表)显示了表中所有条目的所有属性以及一个应该删除该特定条目的小按钮,用于创建表的PHP代码如下:

<?php
include("con.php");
$result = mysqli_query($c,"SELECT * FROM waitlist");
echo "<thead>";
echo "<tr>";
echo "<th>Nombre</th><th>Sillas</th><th>Hora de Llegada</th>";
echo "</tr>";
echo "</thead>";
echo "<tbody>";
while ($places = mysqli_fetch_array($result)) {
    echo "<tr>";
    echo "<td>". $places ['NAME']."</td>";
    echo "<td>". $places ['CHAIRS']."</td>";
    echo "<td>". $places ['CREATED']."</td>";
        echo '<td>
                  <button class="btn btn-default" type="submit" name=' . $places ['ID'] . ' id="deleteWaitlist">X</button>
             </td>';
    echo "</tr>";
}
echo "</tbody>";
mysqli_free_result($result);
?>

这是表架构:

CREATE TABLE WAITLIST (
    ID MEDIUMINT NOT NULL AUTO_INCREMENT,
    NAME VARCHAR(255),
    CHAIRS VARCHAR(255),
    CREATED DATETIME NOT NULL,
    PRIMARY KEY(ID)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;

让按钮删除其上的条目的最佳方法是什么?该函数每隔几秒刷新一次表,所以我只需要从数据库中删除它。我还有一个不完整的PHP函数,可以在buttonpress上调用,删除条目,但我不确定如何完成它。这是:

<?php
 include("con.php");    
 $sql = "DELETE FROM waitlist WHERE id='.$_POST[id]'.";
 mysqli_query($c,$sql);
?>

我需要用行的标识符替换$ _POST [name],这是我的问题。这样做的最佳方法是什么?我可以通过jquery.ajax()调用以某种方式传递它吗?我需要新的表属性ID吗?我确定“this”关键字可以在某处使用。 PHP和ajax甚至是最好的方法吗?

Ajax将表写在“#result_table”上,如果需要,这里是相关代码:

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

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

编辑:我更新了@vnponce

推荐的代码

这是ajax调用的代码:

$("#deleteWaitlist").click(function(){
    // Get the varible name, to send to your php
    var i = $(this).attr('name');
    $.post({
        url: 'deleteWaitlist.php', 
        data: { id : i},
        success: function(result){
            // do some code here
            // here yo can see 'result' response of YOUR_PHP_FILE
            console.log(result);
        }
    });
});

在摆弄代码后,我摆脱了所有错误并更新了帖子,但条目仍然没有被删除。

1 个答案:

答案 0 :(得分:2)

最好的方法是在表格中创建ID标识符,然后可以在“删除”按钮中添加此标识符。

该按钮触发一个发送ID的函数,您的PHP文件将其恢复并删除比较ID的数据。

标识符可以添加到表模式中(我不知道它是否是严格的代码,我总是在phpMyAdmin中创建)

CREATE TABLE WAITLIST (
  ID MEDIUMINT NOT NULL AUTO_INCREMENT,
  NAME VARCHAR(255),
  CHAIRS VARCHAR(255),
  CREATED DATETIME NOT NULL
);

首先在删除照片中添加ID。

echo '<td>
          <button class="btn btn-default" type="submit" name=' . $places ['ID']. ' "id="deleteWaitlist">X</button>
      </td>';

ajax

$("#deleteWaitlist").click(function(){

    // Get the varible name, to send to your php
    var i = $(this).attr('name');

    $.post({url: "YOUR_PHP_FILE.php", {id: i}, success: function(result){
        // do some code here
        // here yo can see 'result' response of YOUR_PHP_FILE
        // console.log(result);
    }});

});

现在你的PHP带有ID

<?php
     include("con.php");    
     $sql = "DELETE FROM waitlist WHERE id='.$_POST[id]'.";
     mysqli_query($c,$sql);
?>

我希望有所帮助。如果我有错误或您有问题请告诉我。

UPDATE *

也许deleteWaitlist.php有错误,如果存在则可以返回错误。

<?php
 include("con.php");    
 $sql = "DELETE FROM waitlist WHERE id='.$_POST[id]'.";
 if ( ! mysqli_query($c,$sql) )
 {
     return "Failed to connect to MySQL: " . mysqli_connect_error();
 }
?>