javascript - 未选择第二个下拉菜单

标签 javascript php jquery

我有两个下拉菜单,countrystate 用于用户注册页面。这里的 State 是基于国家的。

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

我的问题是在编辑用户 时。

我有以下 jquery 代码:

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);
             $("#state").val("+data.result.state+").attr('selected',true);
            }
        },'json');

这里我要做的是,一旦选择了国家/地区,它将使用函数过滤其状态

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 "<select  class='select-style' name='country' id=\"country\" onChange=\"dochange('state', this.value)\">";
    echo "<option value=''>- Select Country -</option>\n";
    $result=mysql_query("select * from countries order by countryName asc");
    while($row = mysql_fetch_array($result)){
        echo "<option value='$row[countryCode]'> $row[countryName]</option>" ;
    }
} 
else if ($data=='state') {
    echo "<select class='select-style' name='state'  id=\"stateId\" >\n";
    echo "<option value=''>- Select State -</option>\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 "<option ".$selected. " value=\"$row[state]\">$row[stateName]</option> " ;
    }
} 
echo "</select>\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');

关于javascript - 未选择第二个下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42405973/

相关文章:

jquery - 简单的 jquery UI 自动完成页面不起作用

javascript - Google map - 如何在不刷新布局的情况下添加标记

javascript - catch 之后执行

php - 无法从 mysqli 进行 Base64 解码

php - 在 php.ini 上编辑不起作用

c# - 将任何 Jquery 插件转换为 .NET 服务器控件

javascript - 每次我拖动 Canvas 清除

javascript - Bootstrap Datepicker 显示的月份数

php - 如何让这个 UPDATE 只在这个 while 循环中工作?

javascript - Raphaël 圆环图单击和取消单击部分