使用PHP,JS / jQuery和一点AJAX的CRUD方法

时间:2011-04-12 16:35:36

标签: php javascript jquery ajax sqlite

我一直在研究一个系统,你可以在SQLite数据库中的表中创建-read-update-delete。到目前为止,我只编写了创建和查看方法(简单)。

现在,我在决定如何删除和更新项目时遇到了障碍。在视图页面上,通过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>';
}

2 个答案:

答案 0 :(得分:5)

  1. 创建一个PHP控制器和操作。它必须将ID作为参数,并且应该使用该ID对您的数据库执行删除命令。理想情况下,它只接受DELETE请求(不是GET或POST)。这并不总是可行的,因为某些浏览器不支持DELETE HTTP请求。
  2. 在您的前端
  3. ,创建如下所示的HTML和JavaScript:
  4. 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(); }
            });
        });
    });
    

    更改类型:'DELETE'键入:'POST',如果您正在使用不支持DELETE的浏览器。

答案 1 :(得分:0)

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

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

    • 清空包含该内容的div
    • 创建一个基于的新表 调用的结果(通过调用PHP,如果这是生成表的那个)
    • 追加该表 到div

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