【问题标题】:select form using GET method - is it possible to have an option which appends nothing at all to the URL?使用 GET 方法选择表单 - 是否可以有一个在 URL 中不附加任何内容的选项?
【发布时间】:2014-07-17 18:02:18
【问题描述】:

In the following form, when a country option is selected, it appends ?country=<value> to the URL.

我正在尝试创建一个不应附加任何内容的“全部”选项。我在“全部”选项上使用了value='',但是在选择时它仍将?country= 附加到URL 上。

是否可以删除'?country=',以便在选择“全部”时不会在 URL 中添加任何内容?

<form method="GET" action="">
  <select name="country">
    <option selected disabled value=''>Country</option>
    <option value="">All</option>
    <option>Austria</option>
    <option>Denmark</option>
    <option>Poland</option>
    <input type="hidden" name="date" value="<?php echo $the_date ?>" />
  </select>
</form>

N. B.我还有一个隐藏日期选项,所以完整的 URL 也可能有一个&amp;date=&lt;value&gt;

【问题讨论】:

  • 你用method=GET,改成method=POST?
  • 是的,我需要使用 GET,因为我在页面其他位置使用 URL 中的值
  • 您的 HTML 无效。您的
  • get 将参数放入 URL - 按定义。这就是它的用途。
  • 您仍然可以使用 POST 并在整个页面中使用这些变量,只需使用 $_POST 而不是 $_GET,您还可以使用会话来存储信息。

标签: javascript php html


【解决方案1】:

您正在寻找 POST。

    <form method="post" action="">
      <select name="country">
        <option selected disabled value=''>Country</option>
        <option value="">All</option>
        <option>Austria</option>
        <option>Denmark</option>
        <option>Poland</option>
        <input type="hidden" name="date" value="<?php echo $the_date ?>" />
      </select>
    </form>

<?php
if(isset($_POST['country']))
{
echo '<br>Country: '.$_POST['country'];
echo '<br>Date: '.$_POST['date'];
}
?>

【讨论】:

    【解决方案2】:

    您可以使用ajax表单提交,这样浏览器URL不会改变。 但问题是请求将到达的 URL,它将参数作为查询字符串,但这不会改变它将在后台访问的浏览器 URL。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 2016-09-30
      • 2016-05-18
      • 1970-01-01
      • 2018-04-30
      • 1970-01-01
      • 2012-01-22
      • 2018-08-13
      相关资源
      最近更新 更多