将下拉菜单中的选定值发送到另一个页面

Posted

技术标签:

【中文标题】将下拉菜单中的选定值发送到另一个页面【英文标题】:send the selected value from a dropdown menu to another page 【发布时间】:2015-09-09 01:06:42 【问题描述】:

我有一个由 mysql 数据库填充的下拉列表,其中显示了存储在我的数据库中的书名。

<select id="titles">
<option value="emp" selected>Choose the title</option>
<?php

//drop down list populated by mysql database

$sql = mysql_query("SELECT title FROM book");
while ($row = mysql_fetch_array($sql))

    echo '<option value="'.$row['title'].'">'.$row['title'].'</option>';

?>

我希望将我选择的选项发送到另一个 php 页面 search.php 这个 search.php 我希望它获取标题并搜索此特定书籍的详细信息。(标题、价格、作者......等)。我试图这样做,但它破坏了页面。

【问题讨论】:

【参考方案1】:

用适当的action 包围它并添加一个提交按钮。否则使用 jQuery 之类的东西来监听它的值以更改并提交表单。

例如:

<form action="search.php" method="GET">
    <select id="titles" name="title">
        <?php /* put your stuff here */ ?>
    </select>
</form>

然后在 jQuery 中:

$(function()
    $('#titles').on('change', function()
        $(this).closest('form').submit();
    );
);

或者你可以像这样将事件监听器附加到select

<form action="search.php" method="GET">
    <select id="titles" name="title" onchange="this.parentNode.submit()">
        <?php /* put your stuff here */ ?>
    </select>
</form>

【讨论】:

基本思路相同,只需监听change事件并通过获取表单句柄并调用submit方法提交表单。【参考方案2】:

尝试如下:

<form method="post" action="YOURPAGEPATH">
<select id="titles">
<option value="emp" selected>Choose the title</option>
<?php

//drop down list populated by mysql database

$sql = mysql_query("SELECT title FROM book");
while ($row = mysql_fetch_array($sql))

    echo '<option value="'.$row['title'].'">'.$row['title'].'</option>';

?>
</select>
<input type="submit" name="submit"/>
</form>

没有提交按钮:

<form method="post">
<select id="titles" onchange="this.form.submit();">
<option value="emp" selected>Choose the title</option>
<?php

//drop down list populated by mysql database

$sql = mysql_query("SELECT title FROM book");
while ($row = mysql_fetch_array($sql))

    echo '<option value="'.$row['title'].'">'.$row['title'].'</option>';

?>
</select>
</form>

【讨论】:

必须有提交按钮,其他方式是使用 ajax/javascript 并发布您的页面【参考方案3】:

以适合您的形式添加以下代码。

<form action='search.php' method='post'>
<select id="titles" name='titles'>
<option value="emp" selected>Choose the title</option>
<?php

//drop down list populated by mysql database

$sql = mysql_query("SELECT title FROM book");
while ($row = mysql_fetch_array($sql))

    echo '<option value="'.$row['title'].'">'.$row['title'].'</option>';

?>
    <input type='submit' value='submit'>
    </form>
  in search.php:
  $title = $_POST['titles'];

【讨论】:

【参考方案4】:

您只需要在选择标签上方添加表单,并且需要在选择标签中赋予NAME 属性 以将数据发布到另一个页面上。你可以试试下面的代码:

<form method="post" action="search.php">
<select id="titles" name="titles">
<option value="emp" selected>Choose the title</option>
<?php

//drop down list populated by mysql database

$sql = mysql_query("SELECT title FROM book");
while ($row = mysql_fetch_array($sql))

    echo '<option value="'.$row['title'].'">'.$row['title'].'</option>';

?>
</select>
<input type="submit" name="submit"/>
</form>

在 search.php 页面上,您可以通过以下方式获取下拉列表的值:

$title = $_POST['titles'];

【讨论】:

【参考方案5】:

以防万一您不想使用提交按钮

<script language="Javascript">
function books(book)

    var url="http://www.example.com/search.php/?q="+book;
    window.open(url, "_self");

</script>

<select id="titles">
<option value="emp" selected>Choose the title</option>
<?php
    //drop down list populated by mysql database
    $sql = mysql_query("SELECT title FROM book");
    while ($row = mysql_fetch_array($sql))
    
        echo '<option onClick="books('.$row['title'].')" value="'.$row['title'].'">'.$row['title'].'</option>';
    
?>

这里的列表将在 Click 上调用 Books 函数并将参数传递给函数,该函数会将您重定向到 search.php

要检索书名,请使用

$_GET["q"]

根据需要更改 URL。 如果问题解决了,别忘了标记答案。

【讨论】:

以上是关于将下拉菜单中的选定值发送到另一个页面的主要内容,如果未能解决你的问题,请参考以下文章

验证下拉菜单的当前选择

如何从引导下拉菜单中获取值(jQuery)

选择值后如何将下拉菜单转换为标签。单击按钮后再次转换为下拉菜单

如何根据 laravel 中选定的下拉菜单显示表格内容

根据 DJango/Ajax 中的第一个选定下拉菜单创建下拉选择

如何为多个下拉菜单设置 jquery select2 的选定值?