Я не очень хорошо разбираюсь в AJAX, но, судя по всему, это должно работать.Предполагается, что пользователь выбирает имя из раскрывающегося списка, а другой раскрывающийся список (заполняемый из базы данных mysql с помощью PHP) автоматически выбирает связанный объект.Допустим, у вас было:
Имя: Сьюзи / Майкл / Карен
Любимый фрукт: яблоко / апельсин / манго / гуава
, выбрав Сьюзи, он автоматически выберет "Апельсин""поскольку это ее любимый фрукт в базе данных.
У меня есть этот код для Ajax, чтобы изменить выпадающий список на связанный" фрукт ".
<script type="text/javascript">
function getAff(str)
{
if (str=="NULL" || str=="")
{
document.getElementById("fruit").value="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
alert(xmlhttp.responseText);
var indexVal = document.getElementById("fruit").length;
for(x=0; x<indexVal;x++) {
if (document.getElementById("fruit").options[x].value == xmlhttp.responseText) {
document.getElementById("fruit").selectedIndex = x;
//alert(xmlhttp.responseText);
}
}
}
}
xmlhttp.open("GET","getaff.php?q="+str,true);
xmlhttp.send();
}
</script>
Я сделалпо предупреждению, что он выбирает правильные значения, хотя я прокомментировал это здесь.
Единственное затруднение в том, что выпадающий список НЕ меняется.Я не знаю, потому что это сгенерировано через php?Так не должно быть.Значение каждого выпадающего списка - это название фрукта, который извлекается из базы данных.Я также предупредил себя о величине индекса, чтобы узнать, читает ли он выпадающий список, и получаю правильное число.Но без изменения выпадающего списка.Какие-нибудь мысли?Спасибо!