【问题标题】:How to pass a PHP array to jQuery?如何将 PHP 数组传递给 jQuery?
【发布时间】:2014-05-13 14:15:50
【问题描述】:

我有一个输入字段,我想用一堆可能的来源填充,但我需要从几个不同的区域获取这些来源:我服务器上的一个文件和一些已经在 jQuery 中的东西。

输入字段将显示在 iFrame 中,所以我有一个 .php,当它作为源调用时会回显一些 html。

<?php
$array = array('Louisville, KY', 'Denver, CO');
echo "
<html>
<head>
<link rel='stylesheet' href='//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css'>
  <script src='//code.jquery.com/jquery-1.10.2.js'></script>
  <script src='//code.jquery.com/ui/1.10.4/jquery-ui.js'></script>
  <link rel='stylesheet' href='/resources/demos/style.css'>
  <script>
  $(function() {
    var availableTags = [
      'Boston, MA',
      'New York City, NY',
      'Los Angelos, CA'
    ];
    availableTags = $.merge(availableTags, ".$array.");

    $( '#tags' ).autocomplete({
      source: availableTags
    });
  });
  </script>
  </head>
<body>
Select a voting option.
<br>
<span id='options'>
<form method='post' action='/creations/tools/poll/pollstorage.php' target='mainframe'>
<input id='tags' name='score'/>
<input type='submit' value='Vote'/>
</form>
<br>
</span>
</body>
</html>
"
?>

在我将回显到 iframe 的 jQuery 中,您可以看到我尝试将现有的 jQuery 数组和 PHP 数组的输出合并在一起:availableTags = $.merge(availableTags, ".$array.");。我试过了,没有一个 jQuery 工作。

我在这里做错了什么?我应该如何合并 PHP 数组和 jQuery 数组?

【问题讨论】:

  • PHP 数组与 Javascript 数组非常不同。
  • ik,这就是为什么我要问如何做到这一点。
  • 旁注:您的 PHP 结束标记之前缺少一个结束分号。
  • 如果你只是想发送 php 数组然后使用 json_encode($arrayList); 将其转换为 json;在php中并比json返回到jquery。 Json可以像jQuery中的数组一样简单
  • 感谢@Fred-ii-

标签: php jquery html arrays iframe


【解决方案1】:

使用 json_encode():

$.merge(availableTags, ". json_encode($array).");

【讨论】:

  • 剩下的 jQuery 代码又开始工作了,但是数组仍然没有合并。
  • 哦,nevm...我明白了!谢谢你,谢谢你,谢谢你。哎呀,这个网站是救命稻草......
  • 仅供参考,availableTags 已被覆盖。我会更新答案。
【解决方案2】:

您可以将 php 数组转换为 json 文件并在 java-Script 或 jquery 中使用。 使用 php json_encode

【讨论】:

    【解决方案3】:
    var php_array = [<?php echo '"'.implode('","',  $array).'"' ?>];
    availableTags = $.merge(availableTags,php_array );
    

    【讨论】:

      【解决方案4】:

      我认为最好的解决方案是使用 json。

      在 PHP 中创建一个页面,然后输出您需要的 json 数据:

      页面数据.json

      <?php 
          $obj['jsArray']= array('Boston, MA','New York City, NY','Los Angelos, CA');
          echo json_encode($obj);
      ?>
      

      在您的 Html 页面中使用 getJSON 从加载带有 json 数据的页面(我使用的是未经测试的伪代码):

      $.getJSON( "data.json", function( data ) {
        var availableTags = data.jsArray 
      });
      

      或者,如果您有可用标签并将添加新数据:

      $.getJSON( "data.json", function( data ) {
        availableTags.push(data.jsArray)
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-07-25
        • 2015-08-21
        • 1970-01-01
        • 2012-06-01
        • 1970-01-01
        • 2012-08-03
        • 2015-08-07
        相关资源
        最近更新 更多