我要使用输入类型隐藏值,该值是.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"])
?
答案 0 :(得分:3)
您需要找到一种两种语言都可以理解的通用格式,这两种语言进行通信的最常用格式是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());
阅读材料