【问题标题】:Changing the next dropdown value with previous dropdown onchange event使用上一个下拉 onchange 事件更改下一个下拉值
【发布时间】:2012-08-17 12:38:07
【问题描述】:

我对以下问题有点困惑。

在我当前基于 Web 的应用程序中,我有两个下拉菜单。

 <select  name="country">
        <option value="">All</option>
        <option value="">India</option>
        <option value="">China</option>
 </select>

 <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 的州名存储在州表中。

请给我建议。

【问题讨论】:

    标签: php mysql


    【解决方案1】:
    <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

    <?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;    
    
    ?>
    

    我没有测试过这段代码,所以可能会出现一些愚蠢的错误,所以要小心。

    【讨论】:

      【解决方案2】:

      使用以下帖子试试这个:

      Chained Ajax Selects jQuery

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多