动态相关下拉列表

时间:2016-08-11 01:18:25

标签: php jquery drop-down-menu

我有一个从现有数据库中提取一些下拉数据的表单。我一直在研究第二个下拉列表,它引用了第一个从不同数据库中获取更具体信息的下拉列表,但看起来我的代码在某个地方被破坏了。第一个下拉列表填写正常,但当我选择“管理器”时,站点下拉列表变为空白,我甚至丢失了“选择站点”选项。

任何帮助都将不胜感激。

<script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
    <script>
    function getSite(val) {
        $.ajax({
        type: "POST",
        url:"get_site.php",
        data:'manager_id='+val,
        success: function(data){
            $("#site-list").html(data);
        }
        });
    }
    </script>

的HTML / PHP

Manager<br/>
<select name="manager_id" onChange="getSite(this.value);">
<option value="">Select Manager</option>
<?php
$results = mysql_query("SELECT * FROM _managers");
while ($row_unit = mysql_fetch_array($results)){
?>
<option value="<?php echo $row_unit["id"]; ?>"><?php echo $row_unit["company"]; ?></option>
<?php
}
?>
</select>
<br/><br/>
        Site<br/>
<select name="site_id" id="site-list">
<option value="">Select Site</option>
</select>

get_site.php

<?php
include('includes/connect-db.php');

if(!empty($_POST["manager_id"])) {
    $manager_id = $_POST["manager_id"];
    $results = mysql_query("SELECT * FROM _sites WHERE manager_id = $manager_id");
?>
    <option value="">Select Site</option>
<?php
    while ($row_site = mysql_fetch_array($results)){
?>
    <option value="<?php echo $row_site["id"]; ?>"><?php echo $row_site["site_name"]; ?></option>
<?php
    }
}
?>

1 个答案:

答案 0 :(得分:0)

根据评论中的讨论。

  

我做了调整,但仍然没有得到我的价值观   &#34; get_site.php&#34;文件。虽然现在是&#34;选择网站&#34;留在网站上   下拉列表。

假设您从MySQL服务器获取正确的数据,请在get_site.php中进行一些更改,如下所示。

<强> get_site.php

<?
include 'includes/connect-db.php';

if ((!empty($_POST["manager_id"])) && (isset($_POST["manager_id"])))
{
    $manager_id = $_POST["manager_id"];
    $results = mysql_query("SELECT * FROM _sites WHERE manager_id = '{$manager_id}'");
    $options = "<option value=''>Select Site</option>";
    while ($row_site = mysql_fetch_assoc($results))
    {
        $options .= "<option value='{$row_site['id']}''>{$row_site['site_name']}</option>";
    }
    return $options; // I personally prefer to echo using json_encode and decode it in jQuery
}
?>

上面的代码应该为您提供所需的数据。 希望这能解决您的问题。如果您遇到任何困难,请发表评论。