删除没有$ _POST php检查的项目

时间:2012-04-10 15:12:41

标签: php session post checkbox

我坚持以下问题: 我有一个带有文本的表格,每个表格旁边都有一个复选框。我还有一个类似按钮的链接“删除选中”。我想要的是让用户能够通过复选框选择多个文本并一起删除所选的全部文本。问题是我不想使用表单所以我不能使用$ _POST所以我想我必须使用$ _SESSION。我之前使用过会话,但我不知道如何将它们与复选框结合起来..

如果你能给我一些提示或例子,我将非常感激......

我的部分代码可以为您提供线索..

view_texts.php

<?php 

        $sql="SELECT * FROM texts";
        $res=mysql_query($sql) or die(mysql_error());
        $i=1;
        while($row=mysql_fetch_array($res))
            {
     ?>

        <tr>
            <td><input type="checkbox" name="check[]" value="<?php echo $row['id']?>"/></td>
            <td><?php echo $i; ?></td>
            <td><?php echo $row['title']; ?></td>
            <td><?php echo substr($row['description'],0,20); ?></td>
            <td><?php echo $row['page_id']; ?></td>

            <td><a href="edit_text.php?id=<?php echo $row['id'];?>"><img src="images/user_edit.png" alt="" title="" border="0" />                   </a></td>
            <td><a href="delete_text.php?id=<?php echo $row['id'];?>" class="ask"><img src="images/trash.png" alt="" 
            title="" border="0" /></a></td>
        </tr>
      <?php
       $i++;
            }
      ?> 
<a href="delete_selected_texts.php" class="bt_red"><span class="bt_red_lft"></span><strong>Διαγραφή επιλεγμένων</strong><span class="bt_red_r"></span></a>

delete_selected_texts.php

<?php
        if (isset($_POST['check']))
        {
            foreach ($_POST['check'] as $value)
                {
                    $sql = "DELETE FROM texts WHERE id =".$value;
                    mysql_query ($sql);

                }

        }  
?>

这是我用于表单标记内的文本框的代码。

1 个答案:

答案 0 :(得分:0)

如果您因为某种原因而不使用表单,那么您正在寻找使用javascript并在POST上发送AJAX请求。我建议使用jQuery,因为这极大地简化了选择要定位的元素的过程。

看起来像这样......

$(document).function(){
    $(":checkbox").click(function(e){
              var deleteItem = $("input:id").val();
              $.ajax({
                      type: "POST";
                      data: deleteItem;
                      url: "path/to/a/file.php";
                      success: function(data){
                              if (data="success"){
                                  $(this).css("backgroundcolor", "blue");
                              } else {
                                  alert("failed to find item");
                              }
                          }
          });
}

然后,您需要一个Ajax请求发送数据的文件,该文件将构建一个项目列表,用于删除/删除该列表中的项目,当调用delete_selected_texts.php时,这些项目将被存储和调用被删除。

NB。:上面的jQuery尚未检查过。那里有很多错误。