php - 填充下拉列表 - PHP Ajax MySQL

标签 php mysql ajax

我的 HTML 页面上有 2 个下拉菜单:第一个下拉菜单包含数据库列名称,第二个下拉菜单将根据这些名称进行填充

我有一个包含字段的表:<Student Name, Degree, City>以下是条目;

1. "A", "BS", "New York"
2. "B", "BS", "Chicago"
3. "C", "MS", "Boston"
4. "D", "MS", "New York"

所以我的第一个下拉列表将包含列名称,即“学位”和“城市”。

如果我选择“学位”,第二个下拉列表应填充“BS”和“MS”,如果我选择“城市”,第二个下拉列表应选择“纽约”、“波士顿”和“芝加哥”。

我该如何着手实现?

[添加我的代码]:

changeSecond(first)方法与您建议的完全相同

<body>
   <form method="POST" action="" name="mainForm">
      <table>
         <tr>
            <td> Filter by: </td>
            <td>
            <div id="first">
               <select onChange="changeSecond(this.value)">
                  <option value="1">All</option>
                  <option value="2">Degree</option>
                  <option value="3">City</option>
               </select>
            </td>
         </tr>
         <tr>
            <td>&nbsp</td>
            <td>
               <div id="second">
                  <select name="val">
                     <option value=""></option>
                  </select>
               </div>
            </td>
         </tr>
      </table>
   </form>
</body>

这是您建议的 second_script.php:

<?
   $link = mysql_connect("localhost", "root", "");

   if (!$link)
   {
      die('Could not connect: ' . mysql_error());
   }
   if (mysql_select_db("myDatabase", $link))
   {
      $first=mysql_real_escape_string($_REQUEST["first"]);
      $query="SELECT ".$first." FROM myTable GROUP BY ".$first;
      $data=mysql_query($query);

      echo "<select id=\"second\">";
      while($row=mysql_fetch_row($data))
      {
         echo "<option value=\"".$row[0]."\">".$row[0]."</option>";
      }
      echo "</select>";
   }
   echo mysql_error();
?>

最佳答案

要根据其他内容填充下拉列表的主文件代码 在下面的示例中,我在父下拉列表中选择的城市的子下拉列表中显示了地点

    <script type="text/javascript">
    function city_locality(val)
    {
    // alert (val);
    url="<?php echo $this->baseurl ?>/components/com_ezportal/includes/query.php";
    data="stid="+val;
$.post(url,data,function(data){
$("#locid").html(data);
});     
    }
    </script>
    <select name="filter_1state" id="filter_1state" onChange="city_locality(this.value)">
      <option value="0">-- Select City --</option>
      <option value="1">Lahore</option>
      <option value="2">Karachi</option>
      <option value="3">Islamabad</option>
      <option value="4">Quetta</option>
      <option value="5">Multan</option>
    </select>

文件query.php的代码

    <?php 
    $link = mysql_connect('localhost', 'root', '');
    mysql_select_db('mydatabase');
    if (isset($_POST['stid']))
    {
        $stid = $_POST['stid'];
        $query= mysql_query("SELECT id,ezcity FROM tbl_locality WHERE stateid = '".$stid."' GROUP BY ezcity"); 
    ?>
        <option value="0">-- Select Locality --</option>
    <?php
        while($row = mysql_fetch_array($query))
        {
    ?>
        <option value="<?php echo $row['id']?>"><?php echo $row['ezcity']?>        </option> 
        <?php
        }
    }
    ?>

关于php - 填充下拉列表 - PHP Ajax MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5332999/

相关文章:

php - TIMEDIFF GROUP BY 涉及天数

javascript - Jquery发送post表单ajax不起作用

mysql - 授权用户使用用户名创建数据库

php - 寻找一个好的数据库结构来实现类似 Facebook/SO 的通知

ajax - React - ajax post 请求后更新状态的方法

javascript - 如何从异步调用返回响应?

PHP递归文件夹扫描到多数组(子文件夹和文件)

php - PayPal 自动返回不会发回任何 POST 数据

javascript - 如何让用户能够添加另一个选择数据?

php - 无法使用 PHP 创建数据库,并且我的语法是正确的