【问题标题】:How to remove get parameter value after form submission表单提交后如何删除获取参数值
【发布时间】:2021-09-18 10:59:11
【问题描述】:

我有一个表单,我可以将数据添加到表中并将其存储在会话中。我的问题是,当我单击删除按钮时,ID 位于 URL 中。所以我不能添加其他数据。

点击删除后我需要去掉get值

就像这样 http://localhost:8085/examples/buyme.php?del=2 我需要它是这样的 http://localhost:8085/examples/buyme.php

 <table class="table">
    <thead>
  
            <tr>
                <th>ID</th>
                <th>Product Name</th>
                <th>Price</th>
                <th>Quantity</th>
                
                <th>Action</th>

            </tr>
        </thead>
    

<tbody>
            
                    <tr>
            
                    </tr>
                <?php
                if(!empty($_SESSION["cart"])){
                    $values;
                    $total=0;
                    foreach($_SESSION["cart"] as $keys=>$values){
                        $amount = $values["quantity"]*$values["price"];
                        $total=$total+$amount;
                ?>
                         <tr>
                             <td> <?php echo $values["id"] ?> </td>
                      <td> <?php echo $values["pname"] ?> </td>
                      <td> <?php echo $values["price"] ?></td>
                      <td><?php echo $values["quantity"] ?> </td>
                    
                    <td><a href="buyme.php?del=<?php echo $values["id"]  ?>"> Remove</a> 
                             <a href="#editProductModal" class="edit" data-toggle="modal"><i class="material-icons" data-toggle="tooltip" title="Edit">&#xE254;</i></a>
                            
                             
                             
                             </td>
                      <td> </td>
                      
                  </tr>
                 
                <?php   }?>
                <tr>
                      <td></td>
                      <td></td>
                    <td></td>
                      <td>Total </td>
                     <td><?php echo $total ?> </td>
                    
                      <td> </td>
                    <?php } ?>  
                  </tr>
                    <!-- Removing from cart -->
            <?php   
                if(isset($_GET["del"])){
                    foreach($_SESSION["cart"] as $keys=>$values){
                    if($values["id"]==$_GET["del"])
                    {
                        unset($_SESSION["cart"][$keys]);
                       

                        echo "<meta http-equiv='refresh' content='0'>";//to refresh page after submit
                    }
                    }
                    
                }
                    
                
                ?>
                <br>
  <br>
 
                    
                 </tbody>
                  
</table>

请帮帮我 提前致谢

【问题讨论】:

    标签: php session


    【解决方案1】:

    您需要在删除/取消设置 session 值后将 redirect 分页到 buyme.php,以便在代码中替换此行:

    echo "<meta http-equiv='refresh' content='0'>";//to refresh page after submit
    

    用这个:

    header('Location: http://localhost:8085/examples/buyme.php');
    

    【讨论】:

      【解决方案2】:

      不是通过GET 请求而是通过POST 请求发送id 进行删除会更安全。为了使这成为可能,您必须插入一个带有method="POST"&lt;form&gt; 和一个名称为del 的隐藏输入字段,以及您要为每个项目删除的id。 然后你必须在你的脚本中处理POST 调用。

      例如这样:

      if($_POST['del']) {
        # your delete action here
      }
      

      通过使用 POST 请求,无法通过 url 更改 id

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-01-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多