如何在.js文件中使用php数组值?

时间:2019-03-13 09:46:39

标签: php jquery

我要使用输入类型隐藏值,该值是.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');

如何用PHP数组值替换.val(["25171"])

1 个答案:

答案 0 :(得分:3)

您需要找到一种两种语言都可以理解的通用格式,这两种语言进行通信的最常用格式是JSON,因此,您可以执行以下操作:

在您的PHP文件中,您可以定义JavaScript变量:

<?php

?>

<script>
let my_array = JSON.parse('<?= json_encode($my_array) ?>');
</script>

<?php
// php code...

?>

根据Jon Stirling's comment

  

第一个选项仅在以下情况下有效:

     

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