Fonction onchange sur une liste deroulante my

Résolu/Fermé
Signaler
Messages postés
15
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
20 avril 2007
-
 dabla -
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

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
Messages postés
15
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
20 avril 2007

czmaster pourrais tu me dire comment integrer cette fonction stp .
0
Messages postés
15
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
20 avril 2007

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
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
916
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
Messages postés
15
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
20 avril 2007

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
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
916
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
Messages postés
15
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
20 avril 2007
>
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016

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
Messages postés
15
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
20 avril 2007

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
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
916
il faut ajouter la clause 'distinct' à ton SELECT.
0
Messages postés
15
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
20 avril 2007

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
Messages postés
15
Date d'inscription
dimanche 25 mars 2007
Statut
Membre
Dernière intervention
20 avril 2007

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