第二个下拉菜单未选中

我有两个用户注册页面的下拉菜单, 国家 和州 。 这里的州以国家为基础。

如果我选择国家/地区,那么基于该国家/地区的州将会过滤。

我的问题是在编辑用户时

我有以下jquery代码:

var u_id = ; $.post('model/getUser.php',{id:u_id},function(data){ if(data.success == true){ $("#country").val(data.result.country); dochange('state', data.result.country); $("#state").val("+data.result.state+").attr('selected',true); } },'json'); 

这里我要做的是一旦选择了country,那么它将使用函数过滤其状态

 function dochange(src, val) { var req = Inint_AJAX(); req.open("GET", "loc.php?data="+src+"&val="+val); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); req.send(null); } 

loc.php

 $data = $_GET['data']; $val = $_GET['val']; $val2 = $_GET['val2']; if ($data=='country') { echo ""; echo "- Select Country -\n"; $result=mysql_query("select * from countries order by countryName asc"); while($row = mysql_fetch_array($result)){ echo " $row[countryName]" ; } } else if ($data=='state') { echo "\n"; echo "- Select State -\n"; $result=mysql_query("SELECT * FROM state WHERE countryCode= '$val' order by stateName asc"); while($row = mysql_fetch_array($result)){ $selected = ""; if ($val2 == $row[state]) $selected = " selected "; echo "$row[stateName] " ; } } echo "\n"; 

它正在过滤但我无法显示用户的状态。

任何人都可以帮我解决这个问题。

谢谢。

您需要对函数dochange进行一些更改

 function dochange(src, val,cb) { var req = Inint_AJAX(); req.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { if(cb) cb(this.responseText); } }; req.open("GET", "loc.php?data="+src+"&val="+val); req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); req.send(null); } 

然后你可以使用它

 var u_id = ; $.post('model/getUser.php',{id:u_id},function(data){ if(data.success == true){ $("#country").val(data.result.country); dochange('state', data.result.country,function(data){ $("#state").html(data); }); } },'json'); 

你也可以像这样使用

 var u_id = ; $.post('model/getUser.php',{id:u_id},function(data){ if(data.success == true){ $("#country").val(data.result.country); dochange('state', data.result.country,function(data){ $("#state").html(data); $("#state").val('01'); }); } },'json'); 

我通过使用以下代码获得我的解决方案:

 var u_id = ; $.post('model/getUser.php',{id:u_id},function(data){ if(data.success == true){ if($("#country").val(data.result.country)){ dochange('state', data.result.country); $(window).on('load', function () { $("#state").val('01'); }); } } },'json'); 

这是正确的方法以及如何将data.result.state传递给window.on(’load’)函数。