Changing the next dropdown value with previous dropdown onchange event
我对以下问题有些困惑。
在我当前的基于Web的应用程序中,我有两个下拉菜单。
1 2 3 4 5 | <select name="country"> <option value="">All</option> <option value="">India</option> <option value="">China</option> </select> |
和
1 2 3 4 5 | <select name="state"> <option value="">All</option> <option value="">state1</option> <option value="">state2</option> </select> |
现在我需要做的是,当我从某个国家/地区选择印度时,第二个下拉菜单应显示所有印度州,而当我选择中国时,它应该显示第二个下拉菜单中的所有中国州。
我正在使用以下国家/地区和州两个表格
具有列的国家/地区表:country_id,country_name
具有状态的表状态:state_id,country_id,state_name
我将基于country_id的州名存储在状态表中。
请建议我。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <td>Country</td> <td> <select id="country" onChange="getState(this.value)" name="country"> <option value="">All</option> <option value="1">India</option> <option value="2">China</option> </select> </td> function getState(str){ if(str=='All'){ document.getElementById("state").innerHTML=""; }else{ document.getElementById("state").innerHTML="<img src='<?php echo $serverimage?>ajax-loader.gif' />"; if(window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if(xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("state").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","state.php?countryid="+str,true); xmlhttp.send(); }//ELSE ENDS }//FUNCTION ENDS |
//State.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $country=$_GET["country"]; /* code to fetch all states from database with $country and fetch in variable $states Fetch records based on value passed in country dropw down. ie id or countryname */ echo '<select name="state" id="state">'; foreach($states as $state) echo '<option value="'.$state.'">'.$state.'</option>'; echo '<option value="Other">Other</option>'; echo '</select>'; exit; ?> |
我没有测试此代码,因此可能会有一些愚蠢的错误,请多加注意。
使用以下帖子尝试一下:
链式Ajax选择jQuery