jQuery .each()只返回PHP数组的最后一个元素

时间:2015-06-30 06:15:19

标签: php jquery json each

目前我正在尝试在jQuery中返回一个PHP数组,以便将每个元素用作一个paremeter,
但实际上我只是得到 date 的最后一个元素。

我对jQ很新,所以适度的知识和谷歌技能根本无济于事。

这是我现在的代码段。

    <script type="text/javascript">

    var date = '<?php echo json_encode($date);?>';
    var fam =  '<?php echo json_encode($fam);?>';

    $.each($.parseJSON(date),function(){
        document.write(this);
    });

    </script>

参考的数组是

Array ( [0] => 22.06.2015 [1] => 23.06.2015 [2] => 24.06.2015 [3] => 25.06.2015 [4] => 26.06.2015 [5] => 29.06.2015 [6] => 30.06.2015 )

提前致谢,

JaHem

更新

我不认为这是.each()的问题了。 在我的jQuery文件中包含PHP文件

之后

ob_start(); include("{$_SERVER['DOCUMENT_ROOT']}/awesome_path/application114/frames.php"); ob_end_clean();

$date数组从Array ( [0] => 22.06.2015 [1] => 23.06.2015 [2] => 24.06.2015 [3] => 25.06.2015 [4] => 26.06.2015 [5] => 29.06.2015 [6] => 30.06.2015 )
转到Array ( [0] => 30.06.2015 )

include可能会有问题吗?

3 个答案:

答案 0 :(得分:2)

我无法完全重现您的问题,但您可以考虑使用JSON文字而不是字符串;这样你就不需要再解析它了。

var avg:Float = ( sumOf(numbers) ) / Float( numbers.count ) 

答案 1 :(得分:1)

var dateArr = $.parseJSON(date);
$.each(dateArr, function(i, d) {
    console.log("Index: " + i);
    console.log("Date: " + d);
});

编辑:请尽量避免功能中的document.write。而是使用console.log

答案 2 :(得分:0)

我假设数组如下,它工作正常:

qMngrStr = "M99.ESB.MDM2";
hostName = "iskona-t2.cgs.sbrf.ru";
port = 1422;
channel = "SC.M99.ESB.MDM2";

以下是jquery:

<?php
    $array = array( 0 => '22.06.2015', 1 => '23.06.2015', 2 => '24.06.2015', 3 => '25.06.2015', 4 => '26.06.2015', 5 => '29.06.2015', 6 => '30.06.2015' );

?>