php - 如何在 .js 文件中使用 php 数组值?
问题描述
我想使用输入类型隐藏值,它是数组到 .js 文件的 select2 复选框。
php形式
<input type="hidden" name="post_array" id="post_array" value="<?php print_r($post_ids); ?>">
输出:
Array
(
[0] => 25171
[1] => 25163
)
我试图用单独的 .js 文件在 jquery 中获取值
var test = $('#post_array').val();
alert(test);
输出与 php 输出相同:
Array
(
[0] => 25171
[1] => 25163
)
我想在这里使用数组值。
$("#slider_post").val(["25171"]).trigger('change.select2');
如何.val(["25171"])
用 php 数组值替换?
解决方案
您需要找到一种两种语言都能理解的通用格式,这两种语言最常用的通信格式是JSON,因此,您可以执行以下操作:
在您的 PHP 文件中,您可以定义 JavaScript 变量:
<?php
?>
<script>
let my_array = JSON.parse('<?= json_encode($my_array) ?>');
</script>
<?php
// php code...
?>
第一个选项仅在以下情况下有效:
a) 之后包含的 JS 文件,
或 b) js 文件中的代码以在文档加载后运行的方式运行
或者,使用您的方法,您需要通过 PHP 将其编码为 JSON 字符串,然后在 JavaScript 中将其解析为 JSON:
<input type="hidden" name="post_array" id="post_array" value="<?= json_encode($post_ids); ?>">
然后,
var test = JSON.parse($('#post_array').val());
阅读材料