Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/07/2011, 03h30   #1
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Par défaut Recupérer le resultat d'un "select" dans une fonction déja utilisant AjaX

Bonjour,

Pour traduire le titre, j'ai une fonction ajax qui reçoit un tableau composé de code de rubrique.

dans la boucle pour traiter le tableau, pour chaque code(élément du tableau), je dois connaitre sa désignation c'est à dire faire un select dans une autre table.

Et comme, je peux pas faire cette requête sql dans le code javascript, je suis bloqué. En effet, je suis pas sur qu'une faisant déjà un appel ajax peut encore au retour utiliser ajax.

voilà mon code de fonction :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
function go_libelle(){
var xhr = getXhr();
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
traite_ajax_libelle(xhr); // Fonction traitant mon retour
}
 
// Ici on va voir comment faire du post
.open("POST","charger_libelle.php",true);  
// ne pas oublier ça pour le post
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
// ne pas oublier de poster les arguments
// ici, l'id de l'auteur
sel = document.getElementById('Num_compte');
idauteur = sel.options[sel.selectedIndex].value;
xhr.send("NumeroCompte="+idauteur);
function traite_ajax_libelle(xhr)
{
 
if (xhr.readyState==4 && xhr.status == 200 ) 
{
 montext=xhr.responseText;
 var js_table_lib=montext.split(",");
 var js_tableau_lib=JSON.parse(js_table_lib);
  for (i=0; i<js_tableau_lib.length; i++)
        {
  //-- Ecriture de la valeur 
	document.formulaire.champ1.value = js_tableau_lib[i-1];
 
/* Recupérer un libelle par un select qui doit utiliser  js_tableau_lib[i-1] dans la condition WHERE*/
 
// Que faire ici pour avoir ce résultat de select ?
 
 
 
       }
}
}
}
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 09h53   #2
Nouveau Membre du Club
 
Homme Tarek
Technicien Help Desk
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme Tarek
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Technicien Help Desk
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 35
Points : 35
Envoyer un message via Yahoo à mctarek
Citation:
Envoyé par madina Voir le message
Bonjour,

En effet, je suis pas sur qu'une faisant déjà un appel ajax peut encore au retour utiliser ajax.

voilà mon code de fonction :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function go_libelle(){
......					
if (xhr.readyState==4 && xhr.status == 200 ) 
{
 montext=xhr.responseText;
 var js_table_lib=montext.split(",");
 var js_tableau_lib=JSON.parse(js_table_lib);
  for (i=0; i<js_tableau_lib.length; i++)
        {
  //-- Ecriture de la valeur 
	document.formulaire.champ1.value = js_tableau_lib[i-1];
// Que faire ici pour avoir ce résultat de select ?      
 
       }
}
}
}
Salut. En regardant le code, je pense qu'il y a un problème dans l'accès de la donnée/tableau JSON soit js_tableau_lib[i-1] car cela renvoit [object Object].
Il faut définir la donnée à extraire de la chaîne JSON comme js_tableau_lib[i-1].data

Tester sur le cas complet ci-dessous

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
<html>
<head>
<script language="javascript" type="text/javascript" src="json2.js"></script>
<script language="javascript" type="text/javascript">
var montext = '[{"Age":15,"Nom":"Toto"},{"Age":9,"Nom":"Tito"}]'; // string JSON
var js_table_lib=montext.split(","); // renvoit 2 array
var js_tableau_lib=JSON.parse(js_table_lib); // parser les tableaux
for (i=0; i<js_tableau_lib.length; i++)
{
alert ('i: '+i+' '+js_tableau_lib[i].Age); // ok avec .Age sinon [object Object]
}
</script>
</head>
<body>
Extraire les données d'un tableau 
</body>
</html>
Une fois la variable correctement extraite, vous êtes libre d'en faire ce que vous voulez comme la réutiliser dans une autre requête AJAX (autre fonction)
Je ne sais pas si cela va vous aider...
mctarek.
mctarek est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/07/2011, 14h11   #3
Débutant
 
Inscription : avril 2005
Messages : 464
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 464
Points : 69
Points : 69
Merci ,mctarek

Ok je vois bien .

mais ici selon mon cas, j'ai du mal à définir ce que c'est data pour moi.

car le tableau utilisé js_tableau_lib, je le reçoit à partir d'une fonction php qui fait un select d'une colonne.

donc data c'est quoi exactement par rapport à la table ?

Merci

Cordialement.
madina est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/07/2011, 11h57   #4
Nouveau Membre du Club
 
Homme Tarek
Technicien Help Desk
Inscription : juillet 2011
Messages : 32
Détails du profil
Informations personnelles :
Nom : Homme Tarek
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Technicien Help Desk
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : juillet 2011
Messages : 32
Points : 35
Points : 35
Envoyer un message via Yahoo à mctarek
Citation:
Envoyé par madina Voir le message
Merci ,mctarek

Ok je vois bien .

mais ici selon mon cas, j'ai du mal à définir ce que c'est data pour moi.

car le tableau utilisé js_tableau_lib, je le reçoit à partir d'une fonction php qui fait un select d'une colonne.

donc data c'est quoi exactement par rapport à la table ?

Merci

Cordialement.
Salut. Dans mon exemple js_tableau_lib[i].Age => Age = data,
js_tableau_lib[i] est vu comme [object object], il faut ensuite définir la variable à extraire de la chaîne json dans la boucle.
Dans ce cas, si j'ai besoin de récupérer chacune de ces variables, je stockerai chaque variable dans un nom indexé comme nom+i = js_tableau_lib[i].nom; prenom+i = js_tableau_lib[i].prenom;
Dans ton code, js_tableau_lib vient du résultat de la requête xhr.send("NumeroCompte="+idauteur); je suppose donc qu'il s'agit du retour d'un tableau de résultat (mysql ?) encodé en json et contenant des données clef/valeur...mctarek
mctarek est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h33.


 
 
 
 
Partenaires

Hébergement Web