2012-03-20 3 views
0
<script type="text/javascript"> 

    $(document).ready(function(){ 
     setInterval(function(){ 
     $.ajax({ 
      url: "getResult.php", 

      success: function(results){ 

      var details = results.serializeArray(); //Serialized Here 

      var output = '<tr><td>Name</td>\n\ 
          <td>Type</td>\n\ 
          <td>Data</td>\n\ 
          <td>Detail</td></tr>'; 

      $.each(results, function(i, result){        
       output += '<tr><td>' + result.Name + '</td><td>' 
             +result.Type + '</td><td>' 
             +result.data + '</td><td> 
             <a href=javascript:newPopup("test.php?detail='+details +'")>Detail</a></td></tr>';  //pass serialized value here 
      }); 

      $("#insideTable").html(output); 

      }, dataType: "json"}); 
     }, 2000); 
}); 

</script> 

Je voudrais sérialiser le résultat Ajax retourné et également le transmettre au lien comme chaîne de requête.sérialisé le résultat Ajax retourné dans Jquery

Toutefois, cela ne fonctionne pas et l'erreur de rapport de console est results.serializeArray is not a function.

Bienvenue à toute aide, merci d'avance!

+0

S'il vous plaît pouvez-vous ajouter à votre question la sortie de 'console.log (résultats); .... vous devrez ajouter qu'après' succès: fonction (résultats) {' – ManseUK

Répondre

0

méthode serializeArray() peut être appliqué (enchaîné) à un élément jQuery (ce qui est results?) Et, puisque vous êtes à l'intérieur d'un objet, vous obtenez également une erreur d'analyse syntaxique (vous devez écrire details : results.serializeArray(), à la place)

+0

résultats est le tableau Ajax result – Acubi

+0

lire les docs à ce sujet : http://api.jquery.com/serializeArray/ - comme vous pouvez le voir cette méthode est appliquée à une collection jQuery de noeuds – fcalderan

0

Le La méthode .serializeArray() crée un tableau JavaScript d'objets, prêt à être codé en tant que chaîne JSON. Il fonctionne sur un objet jQuery représentant un ensemble d'éléments de formulaire. Vous obtenez cette erreur parce que vous passez quelque chose de mal à $results.

voir http://api.jquery.com/serializeArray par exemple travailler ..

0

le results.serializeArray n'est pas appelé parce que ce ne fait pas partie de $.ajax essayez ceci:

$(document).ready(function(){ 
    setInterval(function(){ 
    $.ajax({ 
     url: "getResult.php", 

     success: function(results){ 
     var output = '<tr><td>Name</td>\n\ 
         <td>Type</td>\n\ 
         <td>Data</td>\n\ 
         <td>Detail</td></tr>'; 
var details = results.serializeArray(); 


     }, dataType: "json"}); 
    }, 2000); 
}); 

aussi vous êtes gona trouvez une erreur d'analyse sur <a href=javascript:newPopup("test.php? detail='+details +'")>Detail</a></td></tr>';

+0

'results.serializeArray ne se fait pas appeler car il ne fait pas partie de $ .ajax' QUOI ??? lisez l'aide de [serializeAray()] (http://api.jquery.com/serializeArray/) – ManseUK

+0

lol avez-vous lu ceci http://api.jquery.com/jQuery.ajax/? vous avez mis les détails var = results.serializeArray(); avant la fonction de succès – dali

+0

serializeArray fait partie de jquery ne fait pas partie de $ .ajax - ' – dali

1

Si results est une chaîne JSON (qui, à en juger par la façon dont vous essayez de l'utiliser, me fait penser que oui) vous devez utiliser

var result jQuery.parseJSON(results); 

cela retourne un Object où vous pouvez utiliser result. syntaxe

Note: la raison pour laquelle vous obtenez serializeArray is not a function est parce que la fonction jQuery serializeArray() attend à un objet jQuery pour exécuter - à savoir $(results).serializeArray()

Questions connexes