关于php:使用上一个下拉onchange事件更改下一个下拉值

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