将PHP的对象数组导入Javascript

时间:2012-01-05 13:44:52

标签: php javascript arrays

我有一个php脚本,它根据HTML输入构造一个对象数组,然后显示结果。我想要做的是逐页显示结果。就像谷歌(或其他搜索引擎)展示他们的结果一样。当用户单击下一步时,后续的结果块将回显到页面。

使用Javascript(Javascript函数被称为onClick事件),我必须导入由PHP脚本准备的整个数组并相应地索引它。这是脚本的一部分,所以你知道数组的种类

foreach($results as $id => $currentResult)
{
    $temp[$i]->id = $id;
    $page = get_page_by_id($id);
    $temp[$i]->url = $page['url'];
    $temp[$i]->title = $page['title'];
    $temp[$i]->score = $currentResult->score;
    ++$i;
}
$temp = qsort($temp);

所以$ temp是我将在Javascript中使用的数组。 这可以完全通过仅使用PHP来消除,但我正试图从服务器上卸载。

4 个答案:

答案 0 :(得分:2)

您可以使用json_encode将该数组发送到javascript,并在那里评估它,以便您获得数据结构。

http://php.net/manual/en/function.json-encode.php

答案 1 :(得分:2)

要将值从PHP传递给js,请在HTML模板中使用以下内容:

<script type="text/javascript">
    var my_array = <?php echo json_encode($my_array_to_path); ?>;
</script>

然后在你的JS中你可以使用下一个语法:

my_array['some_key']; // or my_array.some_key

很棒的东西,我想。

答案 2 :(得分:0)

我建议使用ajax $( '#my_link_id')。的onClick(函数() { //做ajax的东西,从服务器加载 });

请参阅http://api.jquery.com/jQuery.ajax/

答案 3 :(得分:0)

在PHP中执行此操作:

    $temp = qsort($temp);
    json_encode( $temp );
HTML中的

您可以使用jQuery将数据加载回来:

    $.ajax( {
      url: 'some_page.php',
      dataType: 'json',
      success: function( data ) {
          var returnObj = $.parseJSON( data );
          // and more code goes here
      }
    } );