如何在jquery中使用php数组

Posted

技术标签:

【中文标题】如何在jquery中使用php数组【英文标题】:How to use php array in jquery 【发布时间】:2014-05-22 03:21:30 【问题描述】:

你可以在这里看到我的目标,

我的代码中有一个 php 数组,例如

<?php $myvalues = array(13,45,23,54,767,234,543,245); ?>

我想在我的脚本中存储 jquery 数组中的所有值

<script>
    $(document).ready(function()
      var jqueryarray = $myvalues; // here i want to store $myvalues array values in jqueryarray
        for (var i = 0; i < jqueryarray.length; i++) 
            //my stuf
        ;
    ); 
</script>

我该怎么做?

有什么想法吗?

【问题讨论】:

使用 json_encode($myvalues); 将您的 PHP 数组转换为 JSON。然后您就可以将其分配给您的变量。 Get data from php array - AJAX - jQuery的可能重复 【参考方案1】:

你可以使用json_encode

var jqueryarray = <?php echo json_encode($myvalues); ?>;

【讨论】:

感谢您的回复,如果我输入警报(jqueryarray);如果我为此运行 for 循环,它在警报框中给出“对象对象”就像这样 for (var i = 0; i @Naresh - 我在语句末尾添加了分号。它现在应该可以工作了,还请检查我添加的工作演示。 再次感谢您的帮助...在控制台中给出“TypeError:jqueryarray is null” 感谢老板它现在可以正常工作我刚刚重新启动我的服务器一次现在它工作正常 @Naresh - 你看过我的演示吗?【参考方案2】:

试试这个:

var jqueryarray = JSON.parse('<?php echo json_encode($myvalues); ?>');

【讨论】:

【参考方案3】:
<script type='text/javascript'>
<?php
$php_array = array(13,45,23,54,767,234,543,245); 
$js_array = json_encode($php_array);
echo "var javascript_array = ". $js_array . ";\n";
?>
</script>

var jqueryarray = &lt;?php echo json_encode($myvalues); ?&gt;

【讨论】:

【参考方案4】:

使用json_decode 将其转换为 JSON 字符串。 (JavaScript 中的对象),然后遍历 JS 中的对象。在 JavaScript 中遍历数组与在 PHP 中进行遍历没有太大区别。您所要做的就是从 JSON 对象中提取数组,然后您可以使用常规的 for 循环。

<?php $myvalues = array(13,45,23,54,767,234,543,245); ?>
<script>
  var myObject = <?php echo json_encode(array("payload" => $myvalues)); ?>;
  var payload = myObject.payload;
  /*
  [ 13,
    45,
    23,
    54,
    767,
    234,
    543,
    245 ]
   */

  for(var i = 0; i < payload.length; i++) 
    alert(payload[i];
  
</script>

使用Array.prototype.forEach,您还可以使用优雅的回调函数遍历对象,该函数获取 3 个值:当前枚举的数组值、当前数字索引和对数组本身的引用。使用它您不必声明任何迭代变量。但如果您正在寻找跨浏览器解决方案,这可能不适用于某些版本的 IE。

<script>
   var myObject = <?php echo json_encode(array("payload" => $myvalues)); ?>;
   var payload = myObject.payload;
   payload.forEach(function(val, index, array) 
     alert(array[index]);
   );
</script>

还有其他遍历对象的方法:

<script>
   var myObject = <?php echo json_encode(array("payload" => $myvalues)); ?>;
   var payload = myObject.payload;
   var node;
   while(node = payload.shift()) 
     alert(node);
   
</script>

【讨论】:

感谢您的回复,我尝试了这两个,即使它没有发出警报(payload.length);对于这个也是....&它给出“ TypeError:payload is null ”&我给出了一个警报(“hi”);它的工作...... 是的..我试过像 alert(myobject);如果我给出警报(payload.length),它会在警报框中给出“对象对象”;甚至警报消息也没有出现......&在控制台中给出“ TypeError:payload is null ”【参考方案5】:

很简单,你就快到了。使用下面的代码,当然在 php 文件中

<?php $myvalues = array(13,45,23,54,767,234,543,245); ?>
<script>
    $(document).ready(function() 
        var jqueryarray = <?php echo json_encode($myvalues ); ?>;
        for (var i = 0; i < jqueryarray.length; i++) 
            console.log(jqueryarray[i]);
        
        ;
    );
</script>

【讨论】:

【参考方案6】:

您可以使用 JSON_ENCODE() 在 javascript 中使用 php 变量 ...

【讨论】:

以上是关于如何在jquery中使用php数组的主要内容,如果未能解决你的问题,请参考以下文章

如何在jquery中获取php数组值

PHP-AJAX:如何通过 php/json 数组从查询中填充 jquery 数据表

如何在 jquery 中创建关联数组并通过 ajax 发送以使用 php 解析?

将php数组传递给jquery函数

如何从 php mysql 查询中为 jQuery 自动完成准备多维数组?

Jquery数组验证+ php