Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将php数据输出到jquery数组?_Javascript_Php_Jquery_Json_Wordpress - Fatal编程技术网

Javascript 将php数据输出到jquery数组?

Javascript 将php数据输出到jquery数组?,javascript,php,jquery,json,wordpress,Javascript,Php,Jquery,Json,Wordpress,我正在使用timesheet.js创建时间线。数据将通过Wordpress中的自定义字段输入。我希望能够将php数据输出到jquery数组中。可能吗 这是我的php循环: <?php if( have_rows('timeline') ): while ( have_rows('timeline') ) : the_row(); echo the_sub_field('start_date'); echo the_sub_field('end_dat

我正在使用timesheet.js创建时间线。数据将通过Wordpress中的自定义字段输入。我希望能够将php数据输出到jquery数组中。可能吗

这是我的php循环:

<?php if( have_rows('timeline') ):
    while ( have_rows('timeline') ) : the_row();
        echo the_sub_field('start_date');
        echo the_sub_field('end_date');
        echo the_sub_field('description');
        echo the_sub_field('name');
    endwhile;
endif; ?>

以下是jquery,每次php循环时,我都希望它以以下格式输出:

<script type="text/javascript">
jQuery(function($) {
    $(document).ready(function() {    

        new Timesheet('timesheet', 2002, 2013, [
          ['2002', '09/2002', 'A freaking awesome time', 'lorem'],
          ['06/2002', '09/2003', 'Some great memories', 'ipsum'],
          ['2003', 'Had very bad luck'],
          ['10/2003', '2006', 'At least had fun', 'dolor'],
          ['02/2005', '05/2006', 'Enjoyed those times as well', 'ipsum'],
          ['07/2005', '09/2005', 'Bad luck again', 'default'],
          ['10/2005', '2008', 'For a long time nothing happened', 'dolor'],
          ['01/2008', '05/2009', 'LOST Season #4', 'lorem'],
          ['01/2009', '05/2009', 'LOST Season #4', 'lorem'],
          ['02/2010', '05/2010', 'LOST Season #5', 'lorem'],
          ['09/2008', '06/2010', 'FRINGE #1 & #2', 'ipsum']
        ]);

    });
});
</script>

jQuery(函数($){
$(文档).ready(函数(){
新时间表(“时间表”,2002年、2013年、[
['2002'、'09/2002'、'一段可怕的时光'、'lorem'],
['06/2002','09/2003','Some great memories','ipsum'],
['2003','运气很差',
['10/2003'、'2006'、'至少玩得开心'、'多乐'],
['02/2005'、'05/2006'、'享受那些时光'、'益普生'],
['07/2005'、'09/2005'、'再次倒霉'、'违约'],
['10/2005'、'2008'、'很久没有发生什么事'、'多洛'],
['01/2008','05/2009','LOST Season#4','lorem'],
['01/2009'、'05/2009'、'LOST Season#4'、'lorem'],
['02/2010','05/2010','LOST Season#5','lorem'],
['09/2008'、'06/2010'、'边缘#1和#2'、'同侧']
]);
});
});

是的,您需要回显
标记,并且您可以生成所需的任何Javascript:

<?php
echo '<script>';
if( have_rows('timeline') ):
    echo 'var foo = ['
    while ( have_rows('timeline') ) : the_row();
        echo '"'.the_sub_field('start_date').'",';
        echo '"'.the_sub_field('end_date').'",';
        echo '"'.the_sub_field('description').'",';
        echo '"'.the_sub_field('name').'"';
    endwhile;
    echo '];';
endif;
echo '</script>';
?>

是的,您需要回显
标记,并且您可以生成所需的任何Javascript:

<?php
echo '<script>';
if( have_rows('timeline') ):
    echo 'var foo = ['
    while ( have_rows('timeline') ) : the_row();
        echo '"'.the_sub_field('start_date').'",';
        echo '"'.the_sub_field('end_date').'",';
        echo '"'.the_sub_field('description').'",';
        echo '"'.the_sub_field('name').'"';
    endwhile;
    echo '];';
endif;
echo '</script>';
?>

这样做非常简单,实际上:只需用php构建数组,并回显其
json\u编码的值:

<?php
$array = array();
if( have_rows('timeline') ) {
    while ( have_rows('timeline') ) : the_row();
        $array[] = array(
            the_sub_field('start_date'),
            the_sub_field('end_date'),
            the_sub_field('description'),
            the_sub_field('name')
        );
    endwhile;
    echo '<script> var theArray = '.json_encode($array).';</script>';
} ?>


工作完成后,您现在有一个名为
theArray
的JS变量,它的值将是一个数组数组,包含创建
新时间表所需的所有数据(“时间表”,2002年、2013年,theArray)

这样做其实很简单:只需用php构建数组,并回显其
json\u编码的值:

<?php
$array = array();
if( have_rows('timeline') ) {
    while ( have_rows('timeline') ) : the_row();
        $array[] = array(
            the_sub_field('start_date'),
            the_sub_field('end_date'),
            the_sub_field('description'),
            the_sub_field('name')
        );
    endwhile;
    echo '<script> var theArray = '.json_encode($array).';</script>';
} ?>



工作完成后,您现在有一个名为
theArray
的JS变量,它的值将是一个数组数组,包含创建
新时间表所需的所有数据(“时间表”,2002年、2013年,theArray)

你可以做到!使用ajax或Looping在php中创建一个数据数组,将其编码为json并在jqueryYou中读取json字符串即可!使用ajax或Looping在php中创建一个数据数组,将其编码为json并在jqueryOh中读取json字符串,但我没有意识到这一点!php会输出下面的jquery吗?@Rob:不会,因为这段代码不会引用任何值,并且会生成无效语法。实际上,@EliasVanOotegem的答案更有意义。首先构建您的阵列,然后将其回显
json\u encode
d。我的答案只是概念。我实际上是这样做的。@Rob,His更好的原因是使用
json_encode
可以创建多维数组和复杂对象,
json_encode
每次都会正确地吐出来,而在我的例子中,你会回应每一件作品,创造更多的作品,为错误创造机会……哦,我没有意识到!php会输出下面的jquery吗?@Rob:不会,因为这段代码不会引用任何值,并且会生成无效语法。实际上,@EliasVanOotegem的答案更有意义。首先构建您的阵列,然后将其回显
json\u encode
d。我的答案只是概念。我实际上是这样做的。@Rob,His更好的原因是使用
json_encode
可以创建多维数组和复杂对象,
json_encode
每次都会正确地吐出来,而在我的例子中,你会回应每一个片段,创造更多的工作,创造错误的机会……就我所理解的,这将输出我问题中jquery的等价物?我还需要用它做什么吗?@Rob:根据你在问题中告诉我们的,输出将是你需要的。只需将数组传递给
时间表
构造函数,就像我所做的那样,你应该会很好地处理好,这很有意义,非常感谢。(请接受我的回答!)@Rob,jQuery arrays=Javascript数组。。。据我所知,jQuery在创建数组方面没有任何不同的语法(尽管它对数组/对象有一些简单的语法方法)
json_encode
将创建json(=正确的Javascript表示法)以完全满足您的需要。@philtune:以防万一您不能100%确定:jQuery不会,也永远不会对数组使用不同的语法,因为jQuery是Javascript,因此在JS中有效的东西在jQ中也有效。就我所知,这将输出与我的问题中的jquery等价的结果?我还需要用它做什么吗?@Rob:根据你在问题中告诉我们的,输出将是你需要的。只需将数组传递给
时间表
构造函数,就像我所做的那样,你应该会很好地处理好,这很有意义,非常感谢。(请接受我的回答!)@Rob,jQuery arrays=Javascript数组。。。据我所知,jQuery在创建数组方面没有任何不同的语法(尽管它对数组/对象有一些简单的语法方法)
json\u encode
将创建json(=正确的Javascript表示法),完全符合您所寻找的目的。@philtune:以防万一,您不能100%确定:jQuery不会,也永远不会有不同的数组语法,因为jQuery是Javascript,因此在JS中有效的东西在jQ中也有效。