douzhi7082
2019-03-13 09:46
浏览 214

如何在.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?

图片转代码服务由CSDN问答提供 功能建议

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

Php表格

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

输出:

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

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

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

输出 与php输出相同:

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

我想在这里使用数组值。

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douxie1894 2019-03-13 09:49
    已采纳

    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

    点赞 评论

相关推荐 更多相似问题