저는이 문제에 대한 해결책을 찾기 위해 이틀 동안 머리를 숙이고 있습니다. jQuery.ajax() 다른 상자가 변경 될 때 상자를 업데이트하려면 데이터베이스에서 값을 가져 오는 데 사용하고 있습니다. PHP 스크립트는 데이터베이스에서 값을 가져온 다음 json을 내뱉습니다. IT는 FF에서는 잘 작동하지만 IE의 모든 버전에서는 선택 상자가 업데이트되지 않습니다. json이 출력된다는 사실을 확인했습니다. 여기 jQuery appendTo(), json이 IE 6,7,8에서 작동하지 않습니다.
은 JQuery와입니다 : 내 PHPheader('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo json_encode($json);
이있어
function getVendors(dest,selectSup)
{
var vend = $('select#sup').val();
$.ajax({
beforeSend: function(){
$("select#dest").parent().addClass('loading');
},
type: "GET",
dataType: "json",
cache: false,
url: '/search/cruiseselect/?type=vendors&supplier=' + vend + '&dest=' + dest,
timeout: 2000,
error: function() {
alert("Failed to submit");
},
success: function(data) {
$("select#sup option").remove();
var any = "<option value=\"any\">-- All Cruise Lines --</option>";
$(any).appendTo("select#sup");
$.each(data, function(i, j){
if(j != null && j != undefined) {
var sel = j.value == selectSup ? " selected" : "";
var row = "<option value=\"" + j.value + sel + ">" + j.text + "</option>";
//$(row).appendTo("select#sup");
$("select#sup").append(row);
}
});
},
complete: function(){
$("select#dest").parent().removeClass('loading');
}
});
}
jQuery(document).ready(function(){
//dynamic select boxes
$("select#dest").change(function(){
var selectSup = $("select#sup").children("option:selected").val();
getVendors($(this).val(),selectSup);
});
});
그리고 별도의 쉼표 나 아무것도 올바른 JSON을 출력합니다. 더 중요한 것은 alert (j.value + j.text)를 사용하면; 내 .each() 루프에서 IE에서 올바른 데이터를 얻을 수 있으므로 jquery appendTo()가 작동하지 않는 것 같습니다.
아무도 아이디어가 없습니까?
저의 예를 보여 주시겠습니까? 내가 갈 때 이걸 배우고 있니? –
샘플 코드가 추가되었습니다. 도움이되기를 바랍니다. ;-) – scunliffe
scunliffe, 너는 최고야. 고마워! –