gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 12:47:50 24 4
gpt4 key购买 nike

我试图将一个 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com