2012-01-05 61 views
1

我有一個php腳本,它基於HTML輸入構建一個對象數組,然後顯示結果。我想要做的是逐頁顯示結果。就像谷歌(或其他搜索引擎)顯示他們的結果。當用戶點擊下一個時,後面的結果塊會回顯到頁面。將PHP的對象數組導入到Javascript

這樣做與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); 

所以$溫度是我要在JavaScript中使用數組。 這完全可以通過只使用PHP來消除,但我試圖從服務器上卸下負載。

+0

你使用像Xdebug的一些分析工具?你可能試圖優化一些不起作用的東西,一個簡單的方法是不要加載服務器...... – max4ever 2012-01-05 13:48:54

回答

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 

我認爲偉大的東西。

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 
     } 
    });