У меня есть html-код, как это для выпадающего списка.
<select id="province" onchange="get_twn()"> <option value="western">Western</option> <option value="southern">Southern</option> </select> <select id="towns" name="towns"> </select>
И это мой код ajax для get_twn
.
function get_twn(){ var e = document.getElementById('province'); var val = e.options[e.selectedIndex].value; var xmlhttp; alert('i came'); if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function(){ if (xmlhttp.readyState==4 && xmlhttp.status==200) { //window.location.assign("login.php"); var val = xmlhttp.responseText; var selectList = document.getElementById('towns'); var option = document.createElement('option'); option.value = val; option.text = val; selectList.appendChild(option); } } xmlhttp.open("POST","test.php?a="+val,true); xmlhttp.send(); }
Это php-код test.php
.
if(isset($_REQUEST["a"])){ $result = $dba->get_twn($_REQUEST["a"]); while($row = mysql_fetch_array($result)) { $val = $row['name']; echo $val; } }
Этот код работает хорошо, но есть небольшая ошибка. Когда этот код будет выполнен, он создаст тег опции, но все значения будут объединены друг с другом и создадут только один тег параметра. Однако это должно выглядеть так.