带有PHP,JS/jQuery和一点AJAX的CRUD方法


CRUD methods with PHP, JS/jQuery, and a little AJAX

我一直在研究一个系统,您可以在其中创建-读取-更新-删除到SQLite数据库中的表/从表中创建-读取-更新-删除。 到目前为止,我只编写了创建和查看方法(简单(。

现在,我在决定如何删除和更新项目方面遇到了障碍。 在视图页面上,有通过 php 查询数据库和生成表(通过 php 回显到 html(。 每行旁边还添加了一个看起来像小垃圾桶的按钮,用于删除该行。

如何使用 AJAX 同时从 html 表和 sqlite 表中删除行? 一个更明确的问题是,如何将每个按钮链接到每一行并在单击按钮时查询数据库?

下面是生成的表:

foreach($result as $entry){
 echo  '<tr>' . '<td>'. $entry['department']. ' ' . $entry['CRN']. '</td>' . 
    '<td>'. $entry['title'] . '</td>' . 
    '<td>'. $entry['addDate'] . '</td>'. 
    '<td><button class="fg-button fg-button-icon-left ui-state-default ui-corner-all"><span class="ui-icon ui-icon-trash"></span></button></td>'.'</tr>';
}
  1. 创建 PHP 控制器和操作。 它必须将 ID 作为参数,并且应该使用该 ID 对数据库执行删除命令。 理想情况下,它只接受 DELETE 请求(不接受 GET 或 POST(。 这并不总是可行的,因为某些浏览器不支持删除HTTP请求。
  2. 在你的前端,创建看起来像这样的HTML和JavaScript:

.HTML:

<input id="clickMe" type="button" value="Delete Button" data-rowId="12"/>

Javascript:

$(document).ready(function(){
    $('#clickMe').click(function(){
        // send the delete request
        $.ajax({
            url: '/myEntity/delete',
            data: {id: $(this).data('rowId')},
            type: 'DELETE',
            // removes the row only if the delete succeeds
            success: function(){ $(this).parents('tr').remove(); }
        });
    });
});

将类型:"删除"更改为键入:"POST"(如果您使用的是不支持删除的浏览器(。

您可以让 Ajax 调用返回新的值列表,然后用新内容替换整个表。

  • 在 JS 中,使用回调进行删除调用。
  • 在回调中:

    • div清空包含桌子
    • 创建一个
    • 基于调用的结果(如果这是生成表的原因,则通过调用 PHP(
    • 追加该表到div

这是我们经常做的事情,尽管我们需要这样做,因为它是一个多用户系统。