对 getJSON 的一次调用就可以正常工作......
<div class="col-sm-3 col-xs-12" >
<label for="pickers" >Picker</label>
<select name="Picker" id="selectPicker" class="form-control" ></select>
<label for="grinners" >Grinner</label>
<select name="Grinner" id="selectGrinner" class="form-control" ></select>
</div>
<script>
$( document ).ready( function() {
//pickers
$.getJSON( '/people.php', { get:'pickers' }, function( p ){
var pOptions = '';
for ( var pi=0; pi<=k['DATA'].length; pi++ ) {
pOptions += '<option value="' + p['DATA'][pi][0] + '">' + p['DATA'][pi][1] + ' (' + p['DATA'][pi][2] + ')</option>';
}
$( '#selectPicker' ).html( pOptions );
});
});
</script>
但是 - 当我添加另一个调用时,它破坏了它们,我收到了调用,并且响应很好,返回了 JSON 对象,但 UI 没有填充选择...
上面的方法有效,如果我添加这个(下面),它会破坏两个选择...... 我已经将所有变量命名为不同的,所以我不应该遇到任何冲突......
<script>
$( document ).ready( function() {
//pickers
$.getJSON( '/people.php', { get:'pickers' }, function( p ){
var pOptions = '';
for ( var pi=0; pi<=k['DATA'].length; pi++ ) {
pOptions += '<option value="' + p['DATA'][pi][0] + '">' + p['DATA'][pi][1] + ' (' + p['DATA'][pi][2] + ')</option>';
}
$( '#selectPicker' ).html( pOptions );
});
//grinners
$.getJSON( '/people.php', { get:'grinners' }, function( g ){
var gOptions = '';
for ( var gi=0; gi<=g['DATA'].length; gi++ ) {
gOptions += '<option value="' + g['DATA'][gi][0] + '">' + g['DATA'][gi][1] + ' (' + g['DATA'][gi][2] + ')</option>';
}
$( '#selectGrinner' ).html( gOptions );
});
});
</script>
JSON 看起来像这样(仅供引用):
选择器;
{
"COLUMNS":["ID","PERSON","POSITION"],
"DATA":[[1,"Jo Bob","Banjo"],[2,"Garth Waller","jug"],[3,"Boswell Higgins","washboard"]]
}
咧嘴笑;
{
"COLUMNS":["ID","PERSON","RELATION"],
"DATA":[[1,"Jimmy John","Grand-pappy"],[2,"Margie Monroe","Grammy"],[3,"'big' Tom Turney","cousin/brother"]]
}
最佳答案
如果问题出在 URL 捕获上,我的解决方案是向 URL 添加日期请求参数,例如,
'/people.php?d="+ new Date()
其中 new Date() 是当前的 JavaScript 日期。 您可以选择进行一次调用并管理您的服务器代码以同时返回两个响应。
关于jquery getJSON 调用多次中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30612078/