2011-04-13 3 views
1

J'utilise php & jquery. J'utilise des appels ajax pour charger du contenu html énorme obtenu à partir d'une autre page php. Comme il devient plus lent que le temps passe, j'ai compris que le problème est que, je dois retourner le résultat en JSON. Le contenu HTML est d'une table de certains contenus html et certains événements à l'intérieurchargement du contenu html en tant que json

mais comment dois-je faire cela. quelque chose de spl nécessaire?

+0

affichez le code en premier et votre résultat souhaité – diEcho

+0

Vous ne devez transférer que les données via JSON, c'est-à-dire les données contenues dans la table, créer la table/lignes avec JavaScript côté client et déplacer les liaisons d'événements du HTML extrait à la "page principale", peut-être en utilisant la délégation d'événement. –

+0

doit lire [question similaire] (http://stackoverflow.com/questions/4634407/how-to-transfer-json-data-to-html-with-php) – diEcho

Répondre

2

Dans votre page PHP qui retourne le contenu html, vous pouvez le faire:

// $html should contain the html code you want to return, e.g 
// <table>...............</table> 
$html = json_encode(array('html'=>$html)); 
echo $html; 
die; 

Dans le javascript, vous pouvez faire quelque chose comme ceci:

function getHtml() 
{ 
    $.getJSON("yourphpPage.php", function (result) 
     { 
      $("#yourHtmlDiv").html(result.html); 
     } 
    ); 
} 
+1

c'est très clair. Je crois que cela va m'aider – jason

+0

@jason: Si vous avez été inquiet parce que le montant HTML est énorme et le transfert est lent, alors cela ne vous aidera pas beaucoup. Il transfère la même quantité de HTML. Vous ne gagnez aucun avantage. –

+0

@jason cliquez sur la coche pour la marquer comme réponse si vous le souhaitez –

1

Vous devriez d'abord essayer de comprendre ce qu'est json. C'est juste un format pour l'information hiérarchique. Json en lui-même ne donne aucun sens à cette information, contrairement au HTML. Par exemple, il n'y a pas de "événements", sauf si vous les traitez manuellement et exécutez les gestionnaires d'événements. Cependant, si vous pouvez obtenir vos informations au format json et être toujours utile, il prendra très probablement moins d'espace/bande passante, chargera et même analysera plus vite que le format HTML.

Lire et analyser json est assez simple, car il est basé sur JavaScript. Tout code JSON est également un JavaScript valide, donc vous pouvez l'analyser par exemple avec eval. Cependant, vous devriez le faire uniquement si vous croyez complètement que la source de json n'est pas malveillante, car l'exécution de tout ce que vous obtenez d'une requête dans eval() n'est pas très sûre. Si vous ne faites pas confiance complète l'entrée, vous pouvez utiliser par exemple http://api.jquery.com/jQuery.getJSON/

+0

Pas besoin de 'eval()'. Il y a des analyseurs JSON. –

+1

je vais aller avec getJSON – jason

0

si je comprends votre problème, tu veux les données de retour JSON alors une utilisation simple

jQuery.ajax({ 

       dataType:'json' 
}) 
+0

ok je vais vérifier celui-ci aussi – jason

Questions connexes