下拉选择并使用它发送参数后打开新页面

时间:2016-05-20 12:12:11

标签: php jquery html drop-down-menu

我的页面中有一个下拉列表,我从查询中获取行后通过php生成。这很好。

<?php
$conn = new mysqli('localhost', 'user1', 'qwER$%#RFVD', 'naming_module') 
or die ('Cannot connect to db');

    $result = $conn->query("select surname from Names");

    echo "<div id='dropdown'>";
    echo "<select name='id'>";
    echo '<option value="'.$id.'">Select a name</option>';

    while ($row = $result->fetch_assoc()) 
    {
      unset($id, $name);
      $id = $row['id'];
      $name = $row['name']; 
      echo '<option value="'.$id.'">'.$name.'</option>';
    }

    echo "</select>";
    echo "</div>";
?>

我的目标是,一旦我在下拉列表中选择了一个名称,我想自动移动到另一个页面并将选择的文本作为参数发送,这样我就可以在其中的另一个查询中使用它(从数据库中获取有关名称的更多详细信息)

可以使用PHP完成吗? (我的代码中也有jQuery代码片段,所以如果这是一个选项,我也可以使用它)

我已尝试过以下内容,但它不起作用。

<script type="text/javascript">
    $(document).ready(function() 
     {
       $("#dropdown").change(function() 
        {
           var name =  $('#dropdown :selected').text(); 
           window.location = 'http://127.0.0.1/my-site/project.php?name='  + name;
        });

    });
</script>

3 个答案:

答案 0 :(得分:0)

You are using wrong parameter here use projectname instead of name in below code.

 <script type="text/javascript">
 $(document).ready(function() 
  {
   $("#dropdown").change(function() 
    {
       var projectname =  $('#dropdown :selected').text(); 
       window.location = 'http://127.0.0.1/my-site/project.php?name='  +  name;
    });

   });
  </script>

请记住您正在使用text()函数,这将为您提供文本而不是值,您需要使用val()函数。

:)享受编码。

答案 1 :(得分:0)

您必须在选择框中使用id属性才能使jquery工作。

echo "<div id='dropdown'>";
echo "<select name='id' id='someid'>";

更改jquery中的id名称

<script type="text/javascript">
    $(document).ready(function() 
     {
       $("#someid").change(function() 
        {
           var name =  $('#someid:selected').text(); 
           window.location = 'http://127.0.0.1/my-site/project.php?name='  + name;
        });

    });
</script>

希望这有帮助。

答案 2 :(得分:-2)

我能够使用

获得它

echo("First name: " . $_GET['name'] . "<br />\n");