[ajax] renvoyer un tableau

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [ajax] renvoyer un tableau

par cyrus_91 » 29 mars 2007, 20:36

Merci pour votre aide

J'ai été voir la solution de Cyrano et je m'en suis servi :D

tout marche comme je le souhaitait (sauf sur ie7 :? ) pourtant j'ai testé les exemples de Cyrano sur ie7 et ils marchent ....

j'ai bien essayé de mettre des alert pour voir ou cela bloqué mais aucun ne marche même a l'appel de la fonction (les alert marchent sur firefox)
var requete = null;
			/**
			* Fonction privée qui va créer un objet XHR.
			* Cette fonction initialisera la valeur dans la variable globale définie
			* ci-dessus.
			*/
			function creerRequete()
			{
				try
				{
					/* On tente de créer un objet XmlHTTPRequest */
					requete = new XMLHttpRequest();
				}
				catch (microsoft)
				{
					/* Microsoft utilisant une autre technique, on essays de créer un objet ActiveX */
					try
					{
						requete = new ActiveXObject('Msxml2.XMLHTTP');
					}
					catch(autremicrosoft)
					{
						/* La première méthode a échoué, on en teste une seconde */
						try
						{
							requete = new ActiveXObject('Microsoft.XMLHTTP');
						}
						catch(echec)
						{
							/* À ce stade, aucune méthode ne fonctionne... mettez donc votre navigateur à jour ;) */
							requete = null;
						}
					}
				}
				if(requete == null)
				{
					alert('Impossible de créer l\'objet requête,\nVotre navigateur ne semble pas supporter les object XMLHttpRequest.');
				}
			}
			
			function ajax5(nom)
			{
				/* Si il n'y a pas d'identifiant de région, on fait disparaître la seconde liste au cas où elle serait affichée */
				if(nom == 'vide')
				{
					document.getElementById('inscrits').innerHTML = '';
				}
				else
				{
					/* À cet endroit précis, on peut faire apparaître un message d'attente */
					var blocListe = document.getElementById('inscrits');
					blocListe.innerHTML = "Traitement en cours, veuillez patienter...";
					/* On crée l'objet XHR */
					creerRequete();
					/* Définition du fichier de traitement */
					var url = 'ajax_liste_des_inscrits.php?nom='+ nom;
					/* Envoi de la requête à la page de traitement */
					requete.open('GET', url, true);
			        /* On surveille le changement d'état de la requête qui va passer successivement de 1 à 4 */
					requete.onreadystatechange = function()
					{
						/* Lorsque l'état est à 4 */
						if(requete.readyState == 4)
						{
							/* Si on a un statut à 200 */
							if(requete.status == 200)
							{
								/* Mise à jour de l'affichage, on appelle la fonction apropriée */
								actualiserInscription();
							}
						}
					};
					requete.send(null);
				}
			} 
			/**
			* Fonction privée qui va mettre à jour l'affichage de la page.
			*/
			function actualiserInscription()
			{
				var reponse = requete.responseText;
				var blocListe = document.getElementById('inscrits');
				blocListe.innerHTML = reponse;
			} 
je n'ai pourtant fait que d'adapter le code original, le code est placé dans un fichier .js car sinon ie7 n'affiche rien sur la page

si vous pouviez encore m'aider un peu :D ca serait simpa

ps : merci encore pour le code

par Cyrano » 29 mars 2007, 13:51

J'ajouterais à ce que vient d'écrire Ryle que tu as dans la FAQ un sujet sur les listes liées incluant une version AJAX : le code est récupérable, il te suffira d'adapter à tes besoins

par Ryle » 29 mars 2007, 11:33

C'est pas beaucoup plus compliqué d'écrire dans une page que dans un champ :)

Il te faut au préalable définir la zone dans laquelle tu vas vouloir écrire, ce qui se fait assez facilement, suffit d'y coller un div :

Code : Tout sélectionner

<div id="zoneOusqueJeVeuxEcrire"></div>
Puis en javascript, de faire appel à cet élément par son id et utiliser la propriété innerHTML pour en lire ou en modifier le contenu :)
document.getElementById('zoneOusqueJeVeuxEcrire').innerHTML = monTableauHTMLRécupéréEnAjax;
Et pour peu que ton script ajax te retourne directement le tableau formaté, puisque tu ne passes pas par du xml, tu peux directement l'y coller :)

[ajax] renvoyer un tableau

par cyrus_91 » 28 mars 2007, 18:59

Bonjour a tous

voila j'ai un petit probleme, je commence à apprendre l'ajax :D d'ou mon probleme

j'essaye de céer un tableau qui se remplirait en fonction d'une selection faite dans un menu déroulant , grâce a la variable recuperer je voudrais lister dans un tableau les noms et prenoms associés a cette variable

je sais comment récuperer la variable et la traiter avec la BDD mais je n'arrive pas à retourner le tableau pour qu'il s'affiche.

Je sais seulement renvoyer des valeurs dans des champs text de formulaires

:oops:

merci d'avance pour votre aide

ps : toutes mes reponses en ajax sont renvoyées au format text et non xml