包含数据库数据的表中的选项

时间:2013-07-04 19:55:11

标签: php

这很难解释......

我正在开发一个餐厅系统,用户可以在其中添加可供出售的菜肴,但用户必须选择在菜肴注册后进行编辑/删除。

所以我的想法是:k,要创建一个表从数据库中获取数据,并在最后一列中添加一些选项,如编辑/删除...以下是更好理解的代码:

foreach ($result as $row){                 
    echo '<tr>';
    echo '<td>'.$row['name'].'</td>';
    echo '<td>'.$row['price'].'</td>';
    echo '<td>'.$row['description'].'</td>';
    echo '<td>'.'<img src="img/icons/16/delete.png" alt="delete" height="16" width="16">'.'</td>';
    echo '</tr>';             
 }

就像你已经看到删除选项已经存在(没有功能/动作)这是事情......我可以在href =“delete.php?中放置一个文件的链接但是当用户点击时在这个链接上将引导他们到delete.php页面,离开管理页面...我希望当用户点击删除img时,工作为/类似的AJAX。我不希望用户退出页面.. ..

对不起英语不好(不是我的母语),如果你们想要更多详细信息请问。 Ps:新的PHP程序员 提前谢谢。

3 个答案:

答案 0 :(得分:0)

您可以使用AJAX调用Delete.php,这样就可以在不离开页面的情况下执行请求。

建立到删除页面的实际链接的优点是,它也可以在没有Ajax / Javascript的情况下工作。因此,您可以从构建普通删除页面开始,稍后再添加Ajax。

答案 1 :(得分:0)

使用javascript或jQuery对delete.php执行ajax请求,其中包含要删除的行的id。我经常将id放在<tr> echo "<tr data-id='{$row['id']}'>"中,我的jQuery看起来像这样

$(".delete").on('click', function() {
  var id= $(this).parents('tr').data('id');
  $.ajax({
    url:"delete.php",
    type:"POST",
    data:{id:id},
    success:function(data, textStatus, jqXHR) {
      // do something with the data returned. I usually output "success" from my 
      // delete.php and then check for data.indexOf('success') != -1
      $("tr[data-id="+id+"]").remove();
    },
    error:function(jqXHR, textStatus, errorThrown) {
        alert("Error: "+jqXHR+" "+textStatus+" "+errorThrown);
    }
  });
});
在我的delete.php页面上的

我在继续之前检查$_POST['id']是否为空。如果您使用$_REQUEST['id'],则还可以使用指向delete.php?id=999

的直接链接

答案 2 :(得分:0)

首先,你还应该打印一个record_id,因为根据名称删除是一个非常糟糕的主意,编码会让你失望。

话虽如此,我将使用jQuery做什么:

//PHP
foreach ($result as $row){                 
    echo '<tr>';
    echo '<td>'.$row['name'].'</td>';
    echo '<td>'.$row['price'].'</td>';
    echo '<td>'.$row['description'].'</td>';
    echo '<td>'.'<img class="delete-btn" src="img/icons/16/delete.png" alt="delete" height="16" width="16" data-order-id="$row['id']">'.'</td>';
    echo '</tr>';             
 }    


//JQUERY
$(document).ready(function(){
    $(".delete-btn").click(function(){
        $.post("/delete.php", {order_id: $(this).attr("data-order-id")}, function(){
            $(this).closest("tr").remove();
        });
    });
});