javascript - 通过将 php 数组传递给 javascript 函数来填充下拉列表 onload

标签 javascript php json

我试图将一个 php 数组传递给 javascript 函数 onload,它将在下拉列表中显示 js 数组,但现在我已经这样做了一段时间,我想我需要再次弹出它

首先我使用这段代码将它从一个 php 文件传递​​到另一个

header("location: Rules.php?varFields=".serialize($varFields));

其次,我转移到另一个变量,因为它已传递到所述 php 文件

<?php
$varArray = unserialize($_GET['varFields']);
?>

第三部分我想把它传递给一个 jS 函数,然后将它显示到一个下拉列表中

<body id="body"  onclick="cmbRuleField(\'' + <?php echo json_encode($varArray);?> + '\');"    >

这是外部javascript代码

function cmbRuleField(varArray)//ruleField 
{   
    var varDisplay = JSON.stringify(varArray);

        var sel = document.getElementById("ruleField") // find the drop down

        for (var i in varDisplay) 
        { // loop through all elements

            var opt = document.createElement("option"); // Create the new element
            opt.value = varDisplay [i]; // set the value
            opt.text = varDisplay [i]; // set the text
            sel.appendChild(opt); // add it to the select
        }

}

对于前两部分我已经测试过了并且它可以工作但是对于最后一部分我不能让它工作

最佳答案

我觉得这部分看起来很可疑

<body id="body"  onclick="cmbRuleField(\'' + <?php echo json_encode($varArray);?> + '\');"    >

也许

<body id="body"  onclick="cmbRuleField(<?php echo json_encode($varArray);?>)">

更像它。

还有一个提示,您可以在呈现的页面上查看输出以确定写出的代码是什么样的。所以如果你看到类似这样的东西:

<body id="body"  onclick="cmbRuleField('['a', 'b']')">

你知道有问题。您希望像这样传递 native Javascript 数组

<body id="body"  onclick="cmbRuleField(['a', 'b'])">

编辑

通过聊天讨论后,很明显 OP 代码的顶部部分也需要调整。

header("location: Rules.php?varFields=".http_build_query($varFields));

关于javascript - 通过将 php 数组传递给 javascript 函数来填充下拉列表 onload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21942659/

相关文章:

javascript - 如何使用 Node js 将 json 发送到我的 View

javascript - 如何在 Vue.js 中正确延迟加载 json 文件以减少包大小?

javascript - 我将如何使用动画叠加层来掩盖元素?

PHP Lame 流过滤器

ruby-on-rails - 如何使用 active_model_serializers 为嵌套对象选择序列化程序

javascript - 将数组转换为包含对象的数组

javascript - 当 require.js 存在时,如何成功加载 dimple.js?

javascript - 获取窗口宽度javascript

php - Volley 代码在android中发送空值?

php - 为什么要开始用 PHP 编写面向对象的代码?