如何将选定的选项从下拉菜单传递到PHP中的新页面?

时间:2018-04-18 18:40:56

标签: php html redirect parameters

这是我搜索栏和下拉列表的html。

<form action='seniorProjectLanding.php' method='POST' class='form-group'>
            <div class="form-horizontal" align="center">
              <input type="text" name="searchResults" 
                class="form-control" 
                placeholder="Search"
                style="width:80%; max-width:80%; display:inline-block"/>

              <button type="submit" 
                class="btn btn-primary"
                name="submit"
                style="margin-left:-8px; margin-top:-2px; min-height:36px;">
                <i class="glyphicon glyphicon-search"></i>
              </button>
            </div>

            <div class="row" align="center">
              <div class="form-group" style="width: 50%" align="center">
                <select id="dropdownForm" name="sortDropdown" class="form-control">
                  <option value="Name">Item Name</option>;
                  <option value="LocationID">Location</option>;
                  <option value="CategoryID">Category</option>;
                  <option value="Quantity">Quantity</option>;
                  <option value="LastQuantityUpdate">Most Recently Updated</option>;
                </select>
              </div>
            </div>
          </form>

这就是PHP。

if (isset($_POST["submit"])) {

  $searchResults = $_POST["searchResults"];
  $dropdownSelection = $_GET["dropdownForm"];

  if ($searchResults !== "") {
    header("Location: test2.php?sortBy=".$dropdownSelection."&searchResults=".$searchResults);
  }
  else {
    header("Location: test2.php?sortBy=".$dropdownSelection);
  }

}

我已经使用搜索框中的输入工作了,但似乎无法使用此下拉菜单及其选定的选项值。

3 个答案:

答案 0 :(得分:0)

尝试添加提交按钮...

定义提交按钮(用于提交表单)。

<input type="submit">定义了一个用于将表单数据提交给表单处理程序的按钮。

表单处理程序通常是一个服务器页面,其中包含用于处理输入数据的脚本。

表单处理程序在表单的action属性中指定。

尝试使用:

<form action="test1.php" method="POST" class="form-group">
        <div class="row" align="center">
          <div class="form-group" style="width: 50%" align="center">
            <select id="dropdownForm" name="sortDropdown" class="form-control">
              <option value="Name">Item Name</option>;
              <option value="LocationID">Location</option>;
              <option value="CategoryID">Category</option>;
              <option value="Quantity">Quantity</option>;
              <option value="LastQuantityUpdate">Most Recently Updated</option>;
            </select>
        </div>
      </div>
      <input type="submit" name="submit" value="Submit" />
      </form>

文档:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/submit

答案 1 :(得分:0)

如果您想要在查询字符串中添加参数,则需要使用带有GET method的表单。然后,当您提交表单时,其数据将添加到查询字符串中(即用于过滤/排序搜索结果):

<form action="test1.php" method="GET">
  <select name="sort_by">
    <option value="name">Name</option>
    <!-- and so on -->
  </select>
  <button type="submit">Submit</button>
</form>

如果选择了名称选项,这将提交到 test1.php?sort_by = name

您可以根据需要添加更多字段。然后,您还可以使用$_GET来访问这些值:

$sort_by = $_GET['sort_by'];

答案 2 :(得分:0)

您正在发帖但正在尝试访问get变量。此外,您使用的是控件ID dropdownForm,而不是名称sortDropdown

$dropdownSelection = $_GET["dropdownForm"];

应该是:

$dropdownSelection = $_POST["sortDropdown"];

使用错误报告:

error_reporting(E_ALL);
ini_set('display_errors', '1');

本来会给你这个:

  

注意:未定义的索引:第X行的/path/to/file.php中的dropdownForm