Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除不带$u POST php检查的项目_Php_Session_Post_Checkbox - Fatal编程技术网

删除不带$u POST php检查的项目

删除不带$u POST php检查的项目,php,session,post,checkbox,Php,Session,Post,Checkbox,我遇到了以下问题: 我有一个包含文本的表格,每个表格旁边都有一个复选框。我也有一个按钮,像链接“删除选定”。我想要的是让用户能够通过复选框选择许多文本,并一起删除所选文本。问题是我不想使用表单,所以我不能使用$\u POST,所以我想我必须使用$\u SESSION。我以前使用过会话,但我不知道如何将它们与复选框组合 如果你能给我一些提示或例子,我将不胜感激 我的部分代码给你一个线索 view_text.php <?php $sql="SELECT * FROM tex

我遇到了以下问题: 我有一个包含文本的表格,每个表格旁边都有一个复选框。我也有一个按钮,像链接“删除选定”。我想要的是让用户能够通过复选框选择许多文本,并一起删除所选文本。问题是我不想使用表单,所以我不能使用$\u POST,所以我想我必须使用$\u SESSION。我以前使用过会话,但我不知道如何将它们与复选框组合

如果你能给我一些提示或例子,我将不胜感激

我的部分代码给你一个线索

view_text.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>
<?php
        if (isset($_POST['check']))
        {
            foreach ($_POST['check'] as $value)
                {
                    $sql = "DELETE FROM texts WHERE id =".$value;
                    mysql_query ($sql);

                }

        }  
?>

删除选定的文本。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>
<?php
        if (isset($_POST['check']))
        {
            foreach ($_POST['check'] as $value)
                {
                    $sql = "DELETE FROM texts WHERE id =".$value;
                    mysql_query ($sql);

                }

        }  
?>


这是我在表单标签中用于文本框的代码。

如果您一直坚持不使用表单,无论出于什么原因,您都会考虑使用javascript,并在帖子中发送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以删除该列表时,将存储并调用该列表


注意:上面的jQuery没有被检查。“我不想使用表单,所以我不能使用POST”是什么意思?你怎么能不使用表单呢?从客户端到服务器获取信息的唯一方法是通过请求(
POST
是最简单的赌注,也是最符合要求的)。超级全局会话将状态保存在服务器上。它无法完成客户端和服务器之间的数据传输。这就是POST(和GET)的用途。我读到,如果你不使用表单,你实际上就不能发布一些东西。这是错的吗??这有点复杂,为什么我不想使用表单到那个特定的页面。例如,我不想通过action=“”发布所有表单,而只想通过我所选项目的链接发布带有复选框的部分。谢谢你的回答!有没有一种方法不使用javascript?因为我对javascript和ajax都不太了解。@Foant:那你应该学习它。这就是编程的乐趣,你永远不会知道一切,总有新的东西需要学习@我想知道我是否有更容易使用的替代品。有时,对于同一个问题,有多个解决方案……表格是唯一的选择。如果使用表单和提交按钮,请重新加载页面并检查一些逻辑,以查看帖子是否具有提交值。如果是这样,则执行delete_selected_texts.php逻辑,并使用header命令重定向到您选择的页面。