2010-05-14 8 views
3

ayant un peu de cauchemar, j'essaie d'utiliser jQuery pour insérer du texte extrait d'un appel .load() dans un champ de formulaire (textfield) après un utilisateur se connecte (essentiellement en remplissant certains détails connus). Il est #bookName et #bookEmail je rencontre des problèmes avecInsertion de texte dans une zone de texte en utilisant .load() dans jQuery

Le code J'utilise est:

$.ajax({ 
     type: "POST", 
     url: "/ajax/login.php", 
     data: dataString, 
     success: function(html) { 
      if (html == 1) { 
       $("#loginPanel").load("/ajax/login-panel.php");  
       $("#bookName").load("/ajax/getSessionDetails.php #userUsername"); 
       $("#bookEmail").load("/ajax/getSessionDetails.php #userEmail"); 
       $("#bookingLogin").hide("fast"); 
      } else { 
       $("#loginError").html("Sorry, login failed, please try again"); 
      } 
     } 
    }); 

Si je hardcode tels que $("#bookName").html("Test Content"); cela fonctionne correctement il doit être un problème avec l'appel .load .

J'ai regardé autour et a trouvé un gars suggérer quelque chose comme le code suivant, mais je ne pouvais pas le faire fonctionner:

$.get(htmlBannerUrl, function(data){ 
    $('textarea').val(data); 
}); 
+0

L'adresse est-elle correcte? $ ("# bookName"). load ("/ ajax/getSessionDetails.php #userUsername"); – deostroll

+0

Désolé, j'ai raté une partie de ma question, je reçois des données de l'appel, l'affichage de #loginpanel (un div) correctement, le problème est qu'il ne met pas de données dans #bookname et #bookemail, qui sont tous deux des champs de texte : '' –

+0

Firebug me donne la réponse suivante pour getSessionDetails: '

bateman_ap
' –

Répondre

2

Vous pouvez également utiliser du texte();

$('#loginError').text(); 
0

Il est possible que vous tiriez trop de demandes ajax simultanées:

$("#loginPanel").load("/ajax/login-panel.php");  
$("#bookName").load("/ajax/getSessionDetails.php #userUsername"); 
$("#bookEmail").load("/ajax/getSessionDetails.php #userEmail"); 

La spécification HTTP 1.1 conseille ses clients pour permettre que 2 connexions simultanées à un hôte d'origine. Vous pourriez essayer de réduire ceux-ci à un seul dans le rappel de succès de $ .ajax, pour voir si cela fonctionne comme prévu. Voir aussi:

How many concurrent AJAX (XmlHttpRequest) requests are allowed in popular browsers?

+0

L'appel est récupérer des données donc je ne pense pas que c'est le problème, plutôt de placer ces données dans le champ de texte –

0

Eh bien, je devais utiliser une solution de contournement pour ce faire, pas agréable du tout, mais au moins laissez-moi coller à l'arrière-plan jusqu'à ce que le reste de la construction se fait. Au lieu de l'ajouter en tant que valeur, j'ai dû créer une dupe de l'ensemble du formulaire dans une nouvelle page php et l'insérer en utilisant .load. La bonne chose est que cela fonctionne, la mauvaise chose est que ce n'est pas si utile si je veux réutiliser le code, je vais devoir construire une autre page.

Je devrais garder cette question ouverte car j'ai seulement trouvé une solution de contournement, est-ce que ça fonctionne avec Stackoverflow?

Questions connexes