将 php 数据输出到 jquery 数组中


Output php data into jquery array?

我正在使用时间表创建时间线.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>
这样做非常简单

,真的:只需在 php 中构造数组,并回显其json_encoded值:

<?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 变量,它的值将是一个数组数组,包含创建new Timesheet('timesheet', 2002, 2013, theArray);所需的所有数据

是的,你需要回显<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>';
?>