我正在使用这个非常常见的脚本来填充一个国家/地区的州名称。
<script>
$(function(){
$('#country_id').change(function(){
if( $(this).val() ) {
$('.receiving').show();
$.getJSON('server_site_state.php',{term: $(this).val(), ajax: 'true'}, function(j) {
var options = '<option value="">Inicio</option>';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].value + '</option>';
}
$('#state_id').html(options).show();
$('.receiving').hide();
});
}
else {
$('#state_id').html('<option value="">Select...</option>');
}
});
});
</script>
问题是j
总是null
通话后,因此 <option>
字段未填充
我知道这个电话'server_site_state.php',{ term: $(this).val(), ajax: 'true' }
没问题,因为我在 http 日志中看到了正确形成的 URL
另外,如果我在浏览器中调用它:
http://server_side_state.php?term=18&ajax=1
我得到的,我相信的,是正确的返回:
[
{
"id": "Atlantico Sur",
"value": "5604"
},
{
"id": "Buenos Aires",
"value": "5605"
},
{
"id": "Capital Federal",
"value": "5606"
},
{
"id": "Catamarca",
"value": "5607"
},
{
"id": "Chaco",
"value": "5608"
},
{
"id": "Chubut",
"value": "5609"
},
{
"id": "Cordoba",
"value": "5610"
},
{
"id": "Corrientes",
"value": "5611"
},
{
"id": "Entre Rios",
"value": "5612"
},
{
"id": "Formosa",
"value": "5613"
},
{
"id": "Jujuy",
"value": "5614"
},
{
"id": "La Pampa",
"value": "5615"
},
{
"id": "La Rioja",
"value": "5616"
},
{
"id": "Mendoza",
"value": "5617"
},
{
"id": "Misiones",
"value": "5618"
},
{
"id": "Neuquen",
"value": "5619"
},
{
"id": "Rio Negro",
"value": "5620"
},
{
"id": "Salta",
"value": "5621"
},
{
"id": "San Juan",
"value": "5622"
},
{
"id": "San Luis",
"value": "5623"
},
{
"id": "Santa Cruz",
"value": "5624"
},
{
"id": "Santa Fe",
"value": "5625"
},
{
"id": "Santiago del Estero",
"value": "5626"
},
{
"id": "Tierra del Fuego",
"value": "5627"
},
{
"id": "Tucuman",
"value": "5628"
}
]
这些是阿根廷各州仅供引用
任何帮助将不胜感激。
最佳答案
您可以添加方法来处理成功和错误情况,以获取更多信息,例如:
$.getJSON( ... ).done( ... ).fail( function(xhr, ajaxOptions, thrownError) { ... } ).always(...);
如果失败,您可以使用处理程序中的参数获取更多信息,例如
function(xhr, ajaxOptions, thrownError)
关于php - $.getJSON 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19862144/