Probleme requete PHP & javascript

Résolu/Fermé
killingspree Messages postés 30 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 11 février 2008 - 11 janv. 2008 à 15:03
 lola3265 - 8 juin 2008 à 17:50
Bonjour à tous,

J'aimerais avoir un peu d'aide, alors j'explique depuis le début :

J'ai une interface de modification des données des utilisateurs deja inscrits dans la base de donnée. Il y a une liste déroulante qui permet de sélectionner l'utilisateur que l'on veut modifier. C'est a ce moment que j'ai besoin de récupérer les différentes informations de cet utilisateur dans la base(login, mdp, etc..) pour les insérer dans les zones de texte pour simplifier la modification.

j'utilise donc une fonction javascript qui permet de remplir le nom dans le champ correspondant(valeur sélectionnée dans la liste sur evenement onchange)

echo '<select size=1 name="user" onchange="javascript:submitChange(this)">'."\n";
voici la fonction javascript

<script type="text/javascript">

function submitChange ( liste )
{
var nom = liste.options[liste.selectedIndex].value;

document.getElementById('txt_nom').innerText = nom;
document.getElementById('txt_login').innerText = 'texte';
}

</script

c'est donc le login par exemple que j'ai besoin de récupérer dans la base en fonction du nom sélectionné dans la liste et que je veux ajouter a sa zone de texte

Je ne sais pas si j'ai été clair, dites moi si vous n'avez pas compris.

Merci d'avance.
A voir également:

8 réponses

Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
12 janv. 2008 à 01:03
Hello et félicitations pour ton inscription récente sur le forum !

En fait je me demande... quand tu sélectionnes la liste des noms utilisateurs, pourquoi ne pas récupérer aussi les autres informations comme le login ?

Par exemple tu ferais une requête similaire à :

SELECT nom, login FROM t_utilisateurs

Puis tu déclarerais deux tableaux en JavaScript (ou un tableau d'objets utilisateur, c'est comme tu le sens) que tu alimenterais par les valeurs de "nom" et "login" obtenues par la requête SQL.

Ainsi on choisissant le nom d'indice "n" dans ta liste actuelle de sélection, tu sauras que tu pourras alimenter le champ texte "login" à l'aide de la valeur contenue à l'indice "n" du tableau des login (ou de la propriété "login" de l'objet utilisateur située à l'indice "n" dans le tableau si tu as opté pour une conception orientée objet).

Voilà une idée pour t'aider à avancer.
1
killingspree Messages postés 30 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 11 février 2008 1
14 janv. 2008 à 10:36
hello,

Oui Posotaz, je vois ce que tu veux dire et cette solution me parait correcte mais etant débutant en javascript je ne sais pas trop comment créer un tableau en javascript et surtout l'alimenter à partir du résultat d'une requete en php.

pour créer le tableau et l'alimenter, j'ai trouvé :

var montableau = new array();
MonTableau = ["donnée 1", "donnée 2", "donnée 3", "donnée 4"];


jusque la il n'y a pas trop de soucis mais c'est pour l'alimenter avec les résultats de la requete que je coince. Aurais-tu des pistes ?

Merci par avance.
1
salut,

moi quand je fais une liste déroulante pour récupérer la valeur sélectionnée dans la liste par on change je récupère comme un post.
Mais est ce que c'est ça que tu n'arrives pas à faire? j'avoue que je n'ai pas bien compris ta question..
0
killingspree Messages postés 30 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 11 février 2008 1
11 janv. 2008 à 15:34
Oui moi, aussi j'arrive à récupérer la valeur de la liste déroulante grace a la methode POST. Mais ce que je veux faire, c'est remplir des champs text en fonction d'une valeur sélectionnée dans la liste déroulante !

Est-ce que c'est plus clair ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Posotaz Messages postés 489 Date d'inscription samedi 23 juin 2007 Statut Membre Dernière intervention 19 juin 2011 225
15 janv. 2008 à 19:51
Hello,

Bien sûr, voici pour toi :

var i=0; // indice des tableaux initialisé au début
while($row = msql_fetch_array($resultatRequete) { // tant qu'on a une ligne suivante dans le résultat de la requête
  tabNoms[i] = $row['nom']; // alimente le tableau des noms
  tabLogins[i] = $row['login']; // alimente le tableau des logins
  i++ ; // passe à l'indice suivant
}

Comme ça tu as tes deux tableaux et tu sais qu'au nom d'indice n correspond le login d'indice n également.

En JavaScript tu peux facilement créer un tableau et lui ajouter des éléments sans te soucier de devoir spécifier sa taille par avance.

PS : J'ai omis la distinction entre le code HTML (plutôt Javascript) et le code PHP, je penses que tu as compris ce qui appartient à quoi et où placer les balises appropriées.
0
superpigeon Messages postés 20 Date d'inscription lundi 14 janvier 2008 Statut Membre Dernière intervention 29 octobre 2009 11
16 janv. 2008 à 00:19
Cette solution fonctionne mais le code de création du tableau aura vite tendance à occuper pas mal d'espace.
Donc si c'est pour une petite structure avec peu d'utilisateurs, ça va, mais si c'est pour un site en regroupant des miliers, on aura vite un temps chargement très long. Et dans ce cas il vaudra mieux utiliser une solution à base d'ajax.

MAis si c'est pour un petit nombre d'utilisateurs (disons, moins de 100) c'est parfait ;)
0
killingspree Messages postés 30 Date d'inscription vendredi 11 janvier 2008 Statut Membre Dernière intervention 11 février 2008 1
16 janv. 2008 à 13:54
Merci à vous pour ces réponses, cela fonctionne pas de soucis, pour le nombre d'utilisateurs, il est d'environ 290/300 donc cette solution me convient du moins pour le moment.

Merci encore à vous deux, je mets donc ce problème en résolu :) !

recapitulatif de la solution :

var i=0; // indice des tableaux initialisé au début
while($row = msql_fetch_array($resultatRequete) { // tant qu'on a une ligne suivante dans le résultat de la requête
tabNoms[i] = $row['nom']; // alimente le tableau des noms
tabLogins[i] = $row['login']; // alimente le tableau des logins
i++ ; // passe à l'indice suivant
}
0
svp comment activer java script
0