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

问题描述:

I want to use input type hidden value which is array to .js file for select2 checkbox.

Php form

 <input type="hidden" name="post_array" id="post_array" value="<?php print_r($post_ids); ?>">

Output:

Array
(
    [0] => 25171
    [1] => 25163
)

Value I am trying to fetch in jquery with separate .js file

var test = $('#post_array').val();
alert(test);

Output is same as php output:

Array
(
    [0] => 25171
    [1] => 25163
)

I want to use array values here.

$("#slider_post").val(["25171"]).trigger('change.select2');

How can i replace .val(["25171"]) with php array values?

我想使用输入类型隐藏值,这是数组到.js文件的select2复选框。 p> \ n

Php表格 p>

 &lt; input type =“hidden”name =“post_array”id =“post_array”value =“&lt;?php print_r($  post_ids);?&gt;“&gt; 
  code>  pre> 
 
 

输出: p>

  Array 
(
 [0  ] =&gt; 25171 
 [1] =&gt; 25163 
)
  code>  pre> 
 
 

我试图在jquery中使用单独的.js文件获取值 p >

  var test = $('#post_array')。val(); 
alert(test); 
  code>  pre> 
 
 

输出 与php输出相同: p>

  Array 
(
 [0] =&gt; 25171 
 [1] =&gt; 25163 
)
  code  >  pre> 
 
 

我想在这里使用数组值。 p>

  $(“#slider_post”)。val([“25171”])  .trigger('change.select2'); 
  code>  pre> 
 
 

如何用php数组替换 .val([“25171”]) code> 值? p> div>

What you need is to find a common format which both languages can understand, the most commonly used format used for these two languages to communicate is JSON, as such, you can do the following:

In your PHP file, you can define the JavaScript variable:

<?php

?>

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

<?php
// php code...

?>

As per Jon Stirling's comment:

The first option will only work if:

a) the JS file in included afterwards,

or b) the code in the js file run in a way that it runs after the document has loaded

or, using your method, you need to encode the as a JSON string via PHP then parse it as JSON in JavaScript:

 <input type="hidden" name="post_array" id="post_array" value="<?= json_encode($post_ids); ?>">

Then,

var test = JSON.parse($('#post_array').val());

Reading Material

json_encode

JSON.parse