【问题标题】:How to pass a hidden parameter back to the form action如何将隐藏参数传递回表单操作
【发布时间】:2021-01-26 08:11:59
【问题描述】:

我正在开展一个餐厅搜索和评论项目。我有一个搜索页面,它将显示餐厅名称并为用户提供一个链接,以便使用隐藏输入 rid 为每个餐厅结果添加评论。

在我的 review.php 中,我使用为隐藏输入 rid 发送的值来运行另一个简单的查询,然后显示餐厅的名称。然后我有几个输入,所以用户可以输入他们的名字、他们对餐厅的评价,最后是评论。


<form action="comment.php" method="GET">
  <INPUT TYPE="hidden" NAME="rid" VALUE="">
  <?php
        $db=mysqli_connect(//parameters);

        $restaurant_id= $_GET['rid'];

        if (!empty($_GET)){
            $result = $db->query(//query);

            $row = $restaurant_result->fetch_assoc() 
            echo $row["name"];
        }
  ?>


  <INPUT //other inputs for the user>

</form>

我的问题是,当用户点击底部的submit 按钮时,页面将刷新为 url www..../review.php?rid=,这意味着无法显示餐厅名称,因为没有重新发送餐厅 id 参数在表格中。完成后如何将餐厅 ID 再次发送回页面?

我在这个帖子中尝试了最佳答案,但我遇到了同样的 url 问题:Pass parameter to form action in HTML

【问题讨论】:

  • 那些&lt;ul&gt; 元素在那里做什么?
  • 很抱歉,为了清楚起见应该删除这些,它们只是为了在 html 中生成一个用于格式化目的的列表。对代码本身的工作没有任何作用。
  • 我会用适当的格式化类替换&lt;div&gt;

标签: php html forms


【解决方案1】:
<INPUT TYPE="hidden" NAME="rid" VALUE="<?php if(isset($_GET['rid'])){echo $_GET['rid'];} ?>">

【讨论】:

  • 谢谢!对于将来可能需要此功能的任何人,请稍作说明,应该是&lt;INPUT TYPE="hidden" NAME="rid" VALUE="&lt;?php if(isset($_GET['rid'])){echo $_GET['rid'];} ?&gt;"&gt;
  • 您的代码易受 XSS 攻击...escape your HTML output.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
  • 2020-11-16
  • 1970-01-01
  • 2019-07-04
  • 2014-04-13
  • 1970-01-01
相关资源
最近更新 更多