Je suis en train de gratter des sites, et je fais ceci un à la fois, puis j'essaie d'obtenir les résultats pour qu'ils s'affichent comme je les obtiens. J'essaie de rendre un TR à la fois, mais au lieu de cela, il fait tout le monde, puis rend TOUS les TRs.Rendu Jquery/Ajax et PHP TR
Voici l'appel à javascript:
<body onload="getOffers(companies , {$scraped}, {$isbn13});">
est ici la fonction 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;
}
}
Et voici la page 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>";
?>
J'ai essayé de revenir la piqûre que j'imprime, mais ça n'a même pas marché. Comment est-ce que je peux faire imprimer chaque ligne de table à l'écran pendant que les données sont récupérées?
EDIT: donc j'ai essayé d'ajouter ceci:
print "<tr><td>". $offer['company']."</td><td>". $offer['offer_new'] . "</td><td>" . $offer['offer_used']."</td></tr>";
ob_flush();
flush();
Pour PHP et il ne fonctionne pas. Je ne comprends pas, si je lance une alerte, cela arrive à la volée pour chaque identifiant, mais pas le rendu html.
Avez-vous une URL où vous pouvez consulter votre code en action? ? – Gabriel
http://comp.textbooktech.com/ il suffit de taper un ISBN de n'importe quel livre et il devrait commencer à fonctionner. J'ai enlevé le flush(); – KacieHouser
J'ai essayé ce lien http://comp.textbooktech.com/results.php?id=0470838183 et dans Chrome cela a fonctionné et les lignes sont apparues une par une. Dans Firefox, je reçois une erreur. Le deuxième paramètre est manquant dans votre appel de fonction onload getOffers. – Gabriel