javascript - 使用 PHP 数组和 JS 将值填充到下拉列表中

标签 javascript php

我使用 PHP 和 JS 从 SQL 表中获取数据,然后将结果填充到下拉列表中。

我的代码工作正常,但我在使用返回输出作为 JS 数组时遇到问题。

在我的 PHP 代码部分,我将输出格式化为 JSON 编码'

    echo $js_array = json_encode($Unit_tenants);
    // output is ["1","2","3"]

现在我想通过 JS 使用此输出的返回值将这些值填充到值为 1,2,3 的下拉列表中

我的JS代码

<script>

  $(document).ready(function(){
            $('#ddlUnitNo').change(function(){
                //Selected value
                var inputValue = $(this).val();

                //Ajax for calling php function
                $.post('list.php', { dropdownValue: inputValue }, function(data){


                    //do after submission operation in DOM

                    var select = document.getElementById("selectNumber"); 
var options = data; 

// Optional: Clear all existing options first:
select.innerHTML = "";
// Populate list with options:
for(var i = 0; i < options.length; i++) {
    var opt = options[i];
    select.innerHTML += "<option value=\"" + opt + "\">" + opt + "</option>";
}
                         });
            });
        });
</script>

问题出在 var options = data 中,因为它被识别为字符串而不是具有多个值的数组。知道如何解决这个问题吗?

最佳答案

Javascript 不会接受 php 数组作为数组。您需要将其转换为数组,或者在本例中为 JSON 对象。

尝试以下操作:

在 PHP 中:

return json_encode($data);

在 JavaScript 中:

var options = JSON.parse(data);
// Populate list with options:
for(var i = 0; i < options.length; i++) {
    var opt = options[i];
    select.innerHTML += "<option value=\"" + opt + "\">" + opt + "</option>";
 }

关于javascript - 使用 PHP 数组和 JS 将值填充到下拉列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52063639/

相关文章:

javascript - 只有在 .php 文件在 php 服务器中完成执行后,才有办法在页面中弹出警报吗?

php邮件函数: Sending mails to BCC only

javascript - 文本显示有延迟

javascript - 如何使用 JavaScript 中的 split 函数和正则表达式按长度分割字符串?

javascript - 子菜单不与侧面父元素重叠

php - WORDPRESS:我刚刚在 wp_user 行上使用 phpMyadmin 创建了一个额外的列,现在我需要每个用户在登录时更新该列

php - 无法通过 sphinx 特定端口连接到 mysql

php - 408 HTTP 错误尝试使用负载均衡器访问 AWS 弹性 beanstalk 上的 https

javascript - 悬停、焦点和模糊冲突

javascript - 如何使用 javascript 更改文本选择样式