Ben bunun için bir çözüm bulmaya çalışan iki gün boyunca başımı raf oldum. Ben başka bir kutu değiştirildiğinde bir kutusunu güncelleştirmek için veritabanındaki değerleri kapmak için () jQuery.ajax kullanıyorum. Php komut dosyası veritabanından değerleri kapmak ve sonra json tükürür. BT FF çalışıyor ancak tüm IE sürümlerinde seçim kutusu güncellenen almaz. Ben çıkış olmak json iyi olduğunu teyit ettik.
İşte jquery olduğunu:
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);
});
});
Benim php bu var
header('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);
Ve hiçbir ekstra virgül ya da bir şey ile doğru json çıktısı bulunuyor. Dahası olduğunu ben uyarı (j.value + j.text) kullanıyorsanız; benim. each () döngü içinde, ben IE doğru verileri almak bu yüzden çalışmıyor jquery appendTo () var gibi görünüyor.
Herkes herhangi bir fikir var mı?