【发布时间】:2016-06-28 05:52:30
【问题描述】:
我想根据文本框的值更改选择框的值我正在使用 jquery 自动完成在列表中显示建议,当我选择一个建议时,它现在成为文本框的值我想显示diff 状态的名称基于文本框的值。
我的代码:
<div class="form-group">
<label>Country*</label>
<span class="span_error"><?=$error_username;?></span>
<input name="emp_country" type="text" class="form-control" id="emp_country" placeholder="Employee Country" value="" onchange="getstate(this.value);">
</div>
<div id="countryList"></div>
</div>
我在这里生成自动完成功能,并在国家/地区列表中显示建议,效果很好。
选择框 HTML:
<div class="form-group">
<label>State*</label>
<span class="span_error"><?=$error_username;?></span>
<select name="ddl_state" size="1" class="form-control" id="ddl_state">
<option value="" disabled='' selected=''>Select State</option>
</select>
</div>
我想显示上面文本框中给出的国家名称的不同状态的名称
Javascript:
function getstate(contry)
{
alert(contry);
$.ajax({
type:"POST",
url:"getdata.php",
data:{contry:contry},
success:function(data) {
$('#ddl_state').html(data);
}
});
}
PHP:
if (isset($_POST['contry'])) {
$contry = $_POST['contry'];
get_country_state($contry);
}
function get_country_state($contry)
{
$sql = "Select count_id from countries where count_name='$contry'LIMIT 1";
$result = mysql_query($sql);
$row = mysql_fetch_array(result);
$country_id = $row['count_id'];
$sql_state = "select * from states where count_id='$country_id'ORDER BY state_name";
$result_state = mysql_query($sql_state);
if ($result_state) {
// code...
$output='<option value="">Select State</option>';
while ($ro = mysql_fetch_array($result_state)) {
// code...
$output .= '<option value="' . $ro["state_id"] .'">'.$ro["state_name"] . '</option>';
}
echo $output;
} else {
echo mysql_error($db);
}
}
【问题讨论】:
-
虽然这不是您问题的答案,但您可能想查看我对这个问题的回答:Dynamic drop down list for different countries, states, geographic locations?。它包括一个功能齐全的脚本,用于您尝试实现的目标,并且还可以安全地防止 MySQL 注入(因为您的不是)。
-
能否请您发布您的 jQuery 调用,谢谢。你可以利用 jQuery 自动完成的 change 事件,见api.jqueryui.com/autocomplete/#event-change
标签: javascript php jquery ajax