2010-08-16 91 views
1

我在抓取網站,我一次只做一個,然後試圖讓結果顯示爲我得到它們。我試圖一次渲染一個TR,但是它會執行每一個TR,然後渲染所有TR。Jquery/Ajax和PHP渲染TR

這裏是調用的javascript:

<body onload="getOffers(companies , {$scraped}, {$isbn13});"> 

這裏是JS/jQuery函數:

function getOffers($company_ids, $scraped, $isbn) 
{ 
    if($scraped) 
    { 
     $.ajaxSetup({cache: false}); 
     for(var $id in $company_ids) 
     { 
      $.ajax({ 
        url: "../get_offer.php", 
        data: "id=" + $company_ids[$id] + "&isbn=" + $isbn + "&code=" + $id, 
        dataType: "html", 
        success: function(data) { 
           $("#results tbody:last").append(data); 
           } 
      }); 
     } 
    } 
    else 
    { 
     return true; 
    } 
} 

,這裏是PHP頁面:

<?php 
require_once 'scrape.php'; 
require_once 'include.php'; 
$id = requestValue('id'); 
$isbn = requestValue('isbn'); 
$code = requestValue('code'); 
$page = curlMultiRequest(isbn10($isbn), $id); 
$offer = getOffer($code, $page[$code], isbn10($isbn)); 
print "<tr><td>". $offer['company']."</td><td>". $offer['offer_new'] . "</td><td>" . $offer['offer_used']."</td></tr>"; 
?> 

我試圖返回我正在印刷的刺痛,但是這甚至不起作用。在檢索數據時如何才能將每個表格行打印到屏幕上?

編輯:所以我嘗試添加此:

print "<tr><td>". $offer['company']."</td><td>". $offer['offer_new'] . "</td><td>" . $offer['offer_used']."</td></tr>"; 
ob_flush(); 
flush(); 

到PHP,並沒有奏效。我不明白,如果我拋出一個警報,它發生在每一個ID的飛行,但HTML渲染沒有。

+0

您是否有一個URL,我們可以在其中查看您的代碼? – Gabriel 2010-08-16 17:12:46

+0

http://comp.textbooktech.com/只需輸入任何書籍的ISBN,它就應該開始工作。我刪除了flush(); – KacieHouser 2010-08-16 18:46:49

+0

我試過這個鏈接http://comp.textbooktech.com/results.php?id=0470838183,在Chrome中它工作並且行逐一出現。在Firefox中,我收到一個錯誤。您的onload getOffers函數調用中缺少第二個參數。 – Gabriel 2010-08-16 18:51:59

回答

0

它可能會自動修復,因爲您的瀏覽器緩存了一些javascript。您應該使用一些開發人員工具手動刷新正在測試的主機的資源緩存,以避免舊代碼被巧妙地使用。...