php - 使用上一个下拉 onchange 事件更改下一个下拉值

标签 php mysql

我对以下问题有点困惑。

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

 <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 的州名。

请给我建议。

最佳答案

<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

//状态.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;    

?>

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

关于php - 使用上一个下拉 onchange 事件更改下一个下拉值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12067192/

相关文章:

mysql - WordPress MySql 不兼容。本地开发的版本 : 5. 6.17 和托管提供商版本 5.5.36

php - 两个表的日期时间差异

javascript - Node js从函数返回值

javascript - 如何在 onchange 事件上使用 php 、 ajax 上传图像

php - 有没有办法仅当变量满足特定条件时才在 php 中重定向?

php - 从绝对路径向上 move 文件夹

php - 使用 Tinker 和 Laravel 进行编码

mysql - 在 MySQL 中拆分逗号分隔值

mysql - SQL优化: count all rows through subquery or own query/other improvements

javascript - 语法错误 : unterminated string literal var address = "