我正在尝试进行ajax调用以从我的数据库中获取国家/地区列表.以下是代码的一部分:
country.PHP:
while ($country = $stmt->fetch(PDO::FETCH_ASSOC)) {
$data[] = $country['country'];
}
echo json_encode(array("response"=>$data));
}
我得到以下回应:
{"response":["Afghanistan","Albania","Algeria","American-Samoa","Andorra","Angola"......
Ajax代码:
//country select
$( "#country" ).focus(function() {
$.ajax({
url: 'country.PHP',
dataType: 'json',
contentType: 'application/json',
success: function(data) {
//console.log(data);
var formoption = "";
$.each(data, function(v)
{
var val = data[v];
formoption += "<option value='"+val+"'>"+val+"</option>";
});
$('#countries').append(formoption);
}
});
});
并以形式:
<select id="country" name="country" class="form_input required">
<div id="countries"></div>
</select>
不知怎的,它不起作用,我无法找到原因.请注意我是一个JavaScript新手.我使用它作为Framework7代码的一部分.
期待专家的帮助.
解决方法:
使用$(‘#countries’).append(formoption);
并删除select tag&中的div标签将选择ID更改为国家/地区,请使用以下html
<select id="countries" name="countries" class="form_input required">
</select>
你在div标签中包装选项,所以不适合html.
选项应直接附加到选择标记.
请参阅以下示例代码
$(function() {
var resultFromAjax = {response: ["Afghanistan", "Albania", "Algeria", "American-Samoa", "Andorra", "Angola"]}
var data = resultFromAjax.response
var formoption = "";
$.each(data, function(v) {
var val = data[v]
formoption += "<option value='" + val + "'>" + val + "</option>";
});
$('#countries').html(formoption);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="countries" name="country" class="form_input required">
</select>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。