【问题标题】:Populate a second dropdown accoriding to the values returned by Jquery Ajax根据 Jquery Ajax 返回的值填充第二个下拉列表
【发布时间】:2016-03-28 08:37:10
【问题描述】:

我废弃了这段代码来检查机制是否有效。实际上,我需要实现的是根据“州”下拉菜单的选择填充“城市下拉菜单”。 HTML代码如下。

     <select id="id"></select>
     <select id="state"></select>
     <select id="city"></select>

Ajax 调用如下。

$(document).on("change", '#state', function(e) {
            var state = $(this).val();


        $.ajax({
            type: "POST",
            data: {state: state},
            url: 'get_name_list.php',
            dataType: 'json',
            success: function(json) {

                var $el = $("#city");
                $el.empty(); // remove old options
                $el.append($("<option></option>")
                        .attr("value", '').text('Please Select'));
                $.each(json, function(value, key) {
                    $el.append($("<option></option>")
                            .attr("value", value).text(key));
                });                                                     




            }
        });

    });

PHP 代码将值列表编码为具有以下结构的 JSON。

作为测试,我将 JSON 插入到数据库表中,它一直在工作。所以这不是一个理论过程。它一直有效,直到代码中的这一点。

JSON结构如下。

[{"name":"Alappuzha"},{"name":"Ernakulam"},{"name":"Idukki"},{"name":"Kannur"},{"name":"Kasaragod"},{"name":"Kollam"},{"name":"Kottayam"},{"name":"Kozhikode"},{"name":"Malappuram"},{"name":"Palakkad"},{"name":"Pathanamthitta"},{"name":"Thiruvananthapuram"},{"name":"Thrissur"},{"name":"Wayanad"}]

然后我回显 JSON。

但是第一页的下拉菜单没有被填充。 PHP文件如下。

$json= array();
$id=$_POST["id"];
//echo  $sample;

 //mysqli_query($mysqli,"INSERT into test_tablr values('','$id')") or die(mysqli_error($mysqli)); 


if ($result = $mysqli->query("SELECT name FROM geo_locations  WHERE parent_id =$id ")) {

    while ($row = mysqli_fetch_assoc($result)) {
            $json1[] = $row;
    }
    $json=json_encode($json1);
}


mysqli_query($mysqli,"INSERT into test_tablr values('','$json')") or die(mysqli_error($mysqli)); 
echo $json;

但不幸的是,下拉列表没有被填充。有灯吗?

【问题讨论】:

  • 你觉得有用吗?
  • 问题是success: function(json) 行中的变量json 应该保存从PHp 返回的json 数据吧?但是一个简单的 console.log(json) 似乎无法打印出来。这意味着,数据没有从 PHP 或其他任何地方发回。

标签: php jquery json ajax drop-down-menu


【解决方案1】:

在 jQuery 中试试这个:

    var $el = $("#city"); 
    $el.empty(); // remove old options
    $el.append($("<option value=''>Please Select</option>");
    $.each(json, function(value, key) {
        $el.append($("<option value='"+ value +"'>"+key+"</option>");
    });           

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 2018-03-27
    • 1970-01-01
    • 2012-01-04
    • 2013-05-18
    • 2012-02-03
    相关资源
    最近更新 更多