【发布时间】:2016-09-07 12:39:39
【问题描述】:
我有国家、州、城市三个选择框
<select name="property_country" id="country" >
<option value="">Country</option>
</select>
<select name="property_state" id="state" >
<option value="">State</option>
</select>
<select name="property_city" id="city">
<option value="">City</option>
</select>
PHP 填充的是 country,Ajax 填充的是 State 和 City 字段,没有问题。我在数据库中有两个国家 - 印度和美国。
如果我选择印度,ajax 会正确给出状态。但是,如果我重新选择选项标签“国家”,那么州和城市字段将变为空白。如果没有选择国家(意思是“国家”),我需要 jQuery 代码来填充上面给出的“州”和“城市”的默认标签和值。
这可以通过数据库完成,方法是填写州和城市条目并将它们附加到国家,然后 onload(正文或 javascript)上传默认值。但这将使验证工作也拼凑起来,而不是合乎逻辑的流程。因此需要jQuery解决方案。
我的 jQuery 代码如下:
$(document).ready(function() {
$('#country').on('change', function() {
var country_id = $('#country').val();
$.ajax({
type: 'POST',
url: '../controllers/select.php',
data: "country_id=" + country_id,
success: function(msg) {
$("#state").html(msg);
}
});
});
$('#state').on('change', function() {
var state_id = $('#state').val();
$.ajax({
type: 'POST',
url: '../controllers/select.php',
data: "state_id=" + state_id,
success: function(msg) {
$("#city").html(msg);
}
});
});
我试过了
if (country_id == "") {
$("#state").val("State");
} else {
$.ajax({});
}
【问题讨论】:
-
请同时添加您的 JavaScript 代码。
-
你有没有尝试自己写一些东西?
-
您可以像 $('#state').val('') 一样重置选择字段的值
-
您可以在服务器端查看国家/地区ID。如果国家/地区 ID 为空白,则您需要发送所有州。如果发送了国家 ID(例如 10),那么您需要发送 country_id = 10 的州。州也是如此。
-
在这里您将选项添加为 $("#city").html(msg);因此,一旦您从 ajax 获得选项,就不会出现空白城市选项。所以选项是如果没有选项你需要做的是: $("#city").html(' ');然后做 $("#city").val('')