首页 > 解决方案 > 如何在 .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 数组值替换?

标签: phpjquery

解决方案


您需要找到一种两种语言都能理解的通用格式,这两种语言最常用的通信格式是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());

阅读材料

json_encode

JSON.parse


推荐阅读