doukuang6795 2016-12-12 12:05
浏览 46
已采纳

下拉选择时不会填充Ajax数组

As soon as selected value from dropdown1 is changed, I need to populate the corresponding data for dropdown1's selected value. The populated data must be appended to dropdown2.

I checked related answers and questions about this and tried almost every possible solution but I still can't get it to work.

html

<body>
<select id="dropdown1" class='form-control-static'>
    <option value="value1">Value 1</option>
    <option value="value2">Value 2</option>
</select>

<select id="dropdown2" class='form-control-static'>
</select>

<script src="js/jquery.js"></script>
<script src="js/externalJavascript.js"></script>
</body>

externalJavascript

$('select[name=dropdown1]').change(function (e) {
        var selected = $('select[name=dropdown1]').val() 
        alert(selected);

        $.ajax({
            type: 'POST',
            data: { name: selected },
            url: 'dbaccess.php',
            datatype: 'json',
            success: function(data) {
                alert(data);
                var $select = $('#dropdown2');
                $.each(data, function(key, value) {
                    $select.append('<option value=' + key + '>' + value.name + '</option>');
                });
            }
        });
    });

dbaccess.php

<?php
$name = $_POST['name'];
$name_id = getIdByName($name);

$names_arr = array();
$names_arr = getNamesByNameId($name_id);
//var_dump($names_arr);
echo json_encode($names_arr);
?>

The message alert box returns correct data as shown in SQL Editor alert(data) shows returned data from database as

[{"name":"My Name 1"},{"name":"My Name 2"},{"name":"My Name 3"}]

But it just won't append to the dropdown2 select no matter what I do. I don't see any problem with the ajax.

Any thoughts or ideas? I'll appreciate any help or suggestion.

Thank you.

  • 写回答

1条回答 默认 最新

  • dpbtbcz6650 2016-12-12 13:09
    关注

    Your whole code is perfect just missing one line.

    Just add JSON.parse function in ajax success call.

    success: function(data) {
                    data = JSON.parse(data);
                    .........
                }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加