gpt4 book ai didi

javascript - 将大型 PHP 数组传递给 Javascript

转载 作者:行者123 更新时间:2023-11-28 11:48:09 25 4
gpt4 key购买 nike

我有一个旧版 PHP 应用程序,它使用 Javascript 来处理通常与用户界面相关的特定事务。我遇到了一个尚未找到解决方案的问题,我希望这里有人有想法或建议。

该应用程序为我提供了一个如下所示的 PHP 数组。数据是从数据库中读取的。我改变数组结构的能力有限。数组可能会变得相当大。

    array (size=19)
3029 =>
array (size=10)
0 => string '3029' (length=4)
'id' => string '3029' (length=4)
1 => string 'Week 1' (length=6)
'name' => string 'Week 1' (length=6)
2 => string '3029' (length=4)
'parent' => string '3029' (length=4)
3 => string '16777216' (length=8)
'order' => string '16777216' (length=8)
'level' => int 0
'code' =>
array (size=4)
0 => string '1' (length=1)
1 => string '0' (length=1)
2 => string '0' (length=1)
3 => string '0' (length=1)
3030 =>
array (size=10)
0 => string '3030' (length=4)
'id' => string '3030' (length=4)
1 => string 'W1T1' (length=4)
'name' => string 'W1T1' (length=4)
2 => string '3029' (length=4)
'parent' => string '3029' (length=4)
3 => string '16842752' (length=8)
'order' => string '16842752' (length=8)
'level' => int 1
'code' =>
array (size=4)
0 => string '1' (length=1)
1 => string '1' (length=1)
2 => string '0' (length=1)
3 => string '0' (length=1)
And so forth...

Javascript 函数由 onChange 事件触发,如下所示。 (如果重要的话,所有 JS 都位于与 PHP 不同的文件中。)JS 代码需要能够读取 PHP 数组,执行一些计算,然后更新表单上的其他字段。由于这两种语言的客户端/服务器端处理,事实证明这比我预期的要困难。我考虑过将数组作为参数传递给 JS 函数,但这听起来不是一个好主意,因为数组可能很大。指针会很好,但我不知道这是否可能。我也有点担心 JS 如何/是否可以处理嵌套数组。我没有太多 JS 经验。它像 PHP 一样使用键还是只使用索引?

    <select name="parent" class="text" onchange="getNextCode(document.detailFrm, <?php if ($obj->parent) {echo $obj->parent;} else {echo 0;}?>)">
<option value='<?php echo $obj->id; ?>'><?php echo $AppUI->_('None'); ?></option>
<?php echo $task_parent_options; ?>
</select>

我还没有写JS,所以现在看起来就是这样。正如我所说,这应该读取数组并更新显示。

function getNextCode(form, parent) {
//Read the array
//Calculate next code values
form.code0.value = code0;
form.code1.value = code1;
form.code2.value = code2;
form.code3.value = code3;
}

我在网上到处搜索,但没有运气。我发现的例子要么做完全不同的事情,要么使用一个小数组,这让我怀疑这是否可能。不管怎样,我已经没有主意了。感谢您提供的任何帮助。

最佳答案

您可以使用 json_encode() 将 PHP 数组转换为 Javascript 语法。

<script>
var js_array = <?php echo json_encode($php_array); ?>
</script>

然后您可以在客户端代码的其余部分中使用 js_array 变量。

但最好使用 AJAX 根据需要在数据库中查找数据,而不是将整个数组转储到脚本中。

关于javascript - 将大型 PHP 数组传递给 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43482016/

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