【问题标题】: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 我希望它获取标题并搜索此特定书籍的详细信息。(标题、价格、作者......等)。我试图这样做,但它破坏了页面。

【问题讨论】:

    标签: php mysql list store


    【解决方案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。 如果问题解决了,别忘了标记答案。

        【讨论】:

          猜你喜欢
          • 2020-07-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-13
          相关资源
          最近更新 更多