第二个下拉菜单未选中
我有两个用户注册页面的下拉菜单, 国家 和州 。 这里的州以国家为基础。
如果我选择国家/地区,那么基于该国家/地区的州将会过滤。
我的问题是在编辑用户时 。
我有以下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 = = intval($_GET['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 = = intval($_GET['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 = = intval($_GET['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’)函数。