我有一个从现有数据库中提取一些下拉数据的表单。我一直在研究第二个下拉列表,它引用了第一个从不同数据库中获取更具体信息的下拉列表,但看起来我的代码在某个地方被破坏了。第一个下拉列表填写正常,但当我选择“管理器”时,站点下拉列表变为空白,我甚至丢失了“选择站点”选项。
任何帮助都将不胜感激。
<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
}
}
?>
答案 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
}
?>
上面的代码应该为您提供所需的数据。 希望这能解决您的问题。如果您遇到任何困难,请发表评论。