Fonction onchange sur une liste deroulante my

Résolu/Fermé
claudecs Messages postés 15 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 20 avril 2007 - 25 mars 2007 à 10:35
 dabla - 24 sept. 2007 à 23:42
Bonjour, je cherche comment utiliser la fonction on change avec une liste deroulante qui me liste une table d'une base mysql.
je m'explique le liste les données n_serveur et je souhaiterai quand je selectionne une des donnees qu'automatiquement la page se recharge et m'affiche des données correspondante a ma selection .

voici le mon script pour lister ma base :

echo "<SELECT Name=id_categorie Size=1><OPTION Value=0>Choisir la catégorie</OPTION>";
$sql= "SELECT * FROM serveur ORDER BY n_serveur ASC";
$rep= mysql_query($sql);
while($ligne_liste=mysql_fetch_array($rep)){
echo "<OPTION Value=\"".$ligne_liste['id_categorie']."\">".$ligne_liste['n_serveur']."</OPTION>";
}
echo "</SELECT>";

d'apres ce que j'ai lu il faut que j'enregistre mon resultat et que j'utilise la fonction onchange mais je ne sait pas du tout comment faire ...
please un peu d'aide .
merci
A voir également:

8 réponses

Tu ajoutes onchange :
<SELECT Name=id_categorie Size=1 onchange='submit()'>

Puis tu utilises la variable id_categorie dans la page chargée par ton formulaire
1
claudecs Messages postés 15 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 20 avril 2007
25 mars 2007 à 19:01
czmaster pourrais tu me dire comment integrer cette fonction stp .
0
claudecs Messages postés 15 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 20 avril 2007
25 mars 2007 à 19:02
snif personne pour m'aider ... svp
0
please help
je voudrais savoir comment utiliser une liste déroulante pour envoyer un mail à la personne sélectionnée à l'aide de la liste déroulante.
je suppose qu'il faut une liste déroulante pour sélectionner le destinataire et aussi faire le lien avec l'adresse mail de cette personne
j'ai cherché et pas trouvé y aurait -il quelqu'un pour m'aider
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
25 mars 2007 à 10:54
salut,

j'ai peur que ce soit un peu court tout de même !

regarde cet article qui te montres ce que l'on peut faire avec les formulaires. ça c'est pour la théorie. pour la pratique tu peux utiliser la méthode de czmaster. mais dans ce cas c'est le script cible du formulaire qui va s'exécuter alors que tu peux peut-être afficher le détail sans recharger la page.

l'évènement onChange
-1

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

Posez votre question
claudecs Messages postés 15 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 20 avril 2007
25 mars 2007 à 11:53
merci pour ses reponses suite à la premiere reponse j'ai modifier mon script comme ceci .
echo "<SELECT Name=id_categorie Size=1><OPTION Value=0>Choisir la catégorie</OPTION>";
$sql= "SELECT * FROM gserveur ORDER BY n_serveur ASC";
$rep= mysql_query($sql);
while($ligne_liste=mysql_fetch_array($rep)){
echo "<OPTION Value=\"".$ligne_liste['id_categorie']."\">".$ligne_liste['n_serveur']."</OPTION>";
}
echo "<SELECT Name=id_categorie Size=1 onchange='submit()'>";
echo "</SELECT>";


?>
<?php
$gserv= "SELECT * FROM gserveur,serveur where serveur.n_serveur=['id_categorie']";
echo $gserv['ip_serveur']; // la je veut afficher la variable de la table serveur qui correspond à mon id_categorie qui lui correspond à mon n_serveur de la table gserveur
$ip=$gserv['ip_serveur']; // la je veut la stocker pour l'utiliser plus tard
?>

mais quand je selectionne dans ma liste une valaur rien ne se passe et ma baleur afficher est s ??

pourriez vous m'aider ç corriger mon script .

je vais aller voir de suite l'article conseiller sur le lien juste au dessus
-1
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
25 mars 2007 à 19:14
salut,

au changement (onChange), tu soumets (submit). mais tu soumets quoi ???

ton <SELECT> doit être contenu dans un <FORM> dont l'attribut 'action' permet de déterminer le script à exécuter par la soumission. 'method' doit être gardé.
<FORM  method="post" action="mon_script.php">
        <SELECT></SELECT>
</FORM>
0
claudecs Messages postés 15 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 20 avril 2007 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
25 mars 2007 à 20:24
voila mon script pour les doublons et requete qui marche impec ...

as ceci je voudrais tous simplement grace à la fonction onchange afficher sur la mm page des valeurs d'une autre table en fonction de ma selection de ma listederoulante.
<?php

$login = $_SESSION['login'];

mysql_select_db($database_dbprotect, $dbprotect);

echo "<SELECT Name=id_categorie Size=1 onchange='submit()'><OPTION Value=0>Choisir la catégorie</OPTION>";
$sql= "SELECT * FROM gserveur WHERE login='$login' ORDER BY n_serveur ASC";
$rep= mysql_query($sql);
while($ligne_liste=mysql_fetch_array($rep)){
echo "<OPTION Value=\"".$ligne_liste['id_categorie']."\">".$ligne_liste['n_serveur']."</OPTION>";
}
echo "</SELECT>";
?>
<span class="Style8"><?php echo $_SESSION['prenom'];
echo "$login"
?>


à ceci je veut enregistrer la donner recu de ma liste deroulante, afin de la comparer à un autre table our en afficher les valeurs sur la mm page ...
j'ai essayer de rajouter pour le onchange ceci :
echo "<SELECT Name=id_categorie Size=1 onchange='submit()'><OPTION Value=0>Choisir la catégorie</OPTION>";
ben ca marche pas ...

ensuite pour enregistrer ma vaeur de liste deroulante et l'afficher j'ai rajouter ceci :
id_categorie = $n_serveur;
echo "$n_serveur"
ben ca marche pas non plus..

snif le monde est trop injuste ...
0
claudecs Messages postés 15 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 20 avril 2007
25 mars 2007 à 11:59
A une autre petit chose dans ma liste deroulante il apparait des doublons comment puis je l'eviter ?

pour eviter ses doublons j'ai ajouter ue condition :
$sql= "SELECT * FROM gserveur,serveur WHERE gserveur.login= $_SESSION['login'] ORDER BY n_serveur ASC";

pour avoir dans mon menu deroulant uniquement les valeurs n_serveur de ma table g_serveur qui sont associer au login qui a etait declarer dans la session de la page precedente .

mais la big probleme sa me bug tous .. snif je suis paumer ...

pour mon premier script dure dure ...

je veins de modifier par ceci :
$sql= "SELECT * FROM gserveur,serveur WHERE gserveur.login=$'login' ORDER BY n_serveur ASC";

la plus d'erreur mais ma liste est vide alors qu'il y as bien de valeurs login identique sur les lignes de n_serveur ...

grrr
-1
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
25 mars 2007 à 19:23
il faut ajouter la clause 'distinct' à ton SELECT.
0
claudecs Messages postés 15 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 20 avril 2007
25 mars 2007 à 12:35
Voila etand un peu perdu.. mm beaucoup , je viens de mettre tous se que je souhaite faire dans moin script avec l'explication du pourquoi du comment
<?php
mysql_select_db($database_dbprotect, $dbprotect);
echo "<SELECT Name=id_categorie Size=1 onchange='submit()'><OPTION Value=0>Choisir la catégorie</OPTION>";
$sql= "SELECT * FROM gserveur,serveur WHERE gserveur.login=$_SESSION['login'] ORDER BY n_serveur ASC"; //affichage des valeurs de n_serveur de la table gserver et dont le login de la table gserver correspond à celui enregistrer dans la session de la page precedente .
$rep= mysql_query($sql);
while($ligne_liste=mysql_fetch_array($rep)){
echo "<OPTION Value=\"".$ligne_liste['id_categorie']."\">".$ligne_liste['gserveur.n_serveur']."</OPTION>";

}
echo "</SELECT>";


?>
<?php
$gserv= "SELECT * FROM gserveur,serveur where serveur.n_serveur=['id_categorie']";

$ip=$gserv['ip_serveur']; // la je veut stocker la variable de la table serveur qui correspond à mon id_categorie qui lui correspond à mon n_serveur de la table gserveur ps n_serveur exsite dans ma table serveur et dans ma table gserveur.

echo $ip['ip_serveur']; //la je l'affiche
echo $_SESSION['login']

//?>
.. mais bien sur rien ne marche.
la seule chose qui fonctionne et qui correspond c'est quand je lance seul cette ligne
echo $_SESSION['login']
sa me met bien mon login de connection...

j'espere que vous arriver a comprendre le but de mon script car j'ai dans ma table serveur une multitude re donnee a recuperer pour traiter la suite ...
merci de vos aides
-1
claudecs Messages postés 15 Date d'inscription dimanche 25 mars 2007 Statut Membre Dernière intervention 20 avril 2007
26 mars 2007 à 16:07
merci dalida tu m'as mit sur la voi en effet mes balise etait envoléé ..
voici donc le code qui semble fonctionner puisque il apparait dans ma barre d'addresse sous forme de menu= mon g_serveur une fois que j'ai selectionner mon n_serveur dans la liste.

<form>
<?php
$login = $_SESSION['login'];
mysql_select_db($database_dbprotect, $dbprotect);
echo "<SELECT Name=menu Size=1 onchange='this.form.submit()'><OPTION Value=0>Choisir le serveur</OPTION>";
$sql= "SELECT * FROM gserveur WHERE login='$login' ORDER BY n_serveur ASC";
$rep= mysql_query($sql);
while($ligne_liste=mysql_fetch_array($rep)){
echo "<OPTION Value=\"".$ligne_liste['g_serveur']."\">".$ligne_liste['n_serveur']."</OPTION>";
}
echo "</SELECT>";
?>
</form>
<span class="Style8"><?php echo $_SESSION['prenom']; ?>
<span class="Style8"><?php echo "$login"; ?>
<p align="left" class="Style4 Style3"><a href="index.php?erreur=logout"><strong>Vous déconnecter</strong></a></p>

Par contre je suis toujours perdu pour l'affichage et l'enregistrement :

voila c'est simple je voudrais :
1: Que dans mon menu deroulant quand ma selection est faire qu'elle reste afficher et que cela ne revienne pas au premier enregistrement de la base de donné.

2: je n'arrive pas as enregistrer le resultat de ma base de donnée dans le but de l'utiliser dans une deuxieme requete mysql ...

j'espere que vous pourriez m'aider la dessus car je suis news et des heures des fois ne suffise pas à trouver ...
-1