Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

liste deroulante qui en controle une seconde

4 réponses
Avatar
john.ambou
Bonjour,

Je développe un petit programme avec une liste déroulante avec un
evenement onclick qui appel une fonction essai qui doit me créer une
seconde liste déroulante:
Voici mon code :


<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-1">
<title>Document sans nom</title>

//Fonction javascript qui s'est inseré quand j'ai voulu inseré une
liste déroulante
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_jumpMenu(targ,selObj,restore){ //v3.0

eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
if (restore) selObj.selectedIndex=0;
}
//-->
</script>

//fonction php pr créer une liste déroulante
<?php
function essai(){
$wd_host = "localhost";
$wd_login = "root";
$wd_passe = "";
$wd_base = "client";

//Connection au serveur SQL
$connexion = mysql_connect($wd_host,$wd_login,$wd_passe) OR die
("Serveur Down !");

//Selection de la base de donnée
$select_db = mysql_select_db($wd_base,$connexion) OR die ("Selection
impossible de la base !");


$resultat = mysql_query("SELECT nom FROM info_maison_retraite WHERE
departement = '$menu1'");

if ($resultat == FALSE) echo "echec requete <BR>";
else{
echo "<select name='menu2'>";

for ($compteur=0;$compteur<mysql_numrows($resultat);$compteur++){
$nom=mysql_result($resultat,$compteur,"nom");
echo "<option>".$nom."</option>";
}
echo "</select>";
}
}
?>
</head>

<body>

<form name="form4">

//Premiere liste déroulant
<select name="menu1" onChange= "essai()"> //appel de la fonction
essai voir ci dessus

<option selected>D&eacute;partement</option>
<option>95</option>
<option>94</option>
<option>93</option>
<option>92</option>
<option>91</option>
<option>78</option>
</select>

</body>
</html>


Ainsi lors de l'initialisation il y a qu'une seul liste déroulante et
j'aimerais que lorsque par exemple je clique sur un département
comment le 95 une liste s'ouvre avec tous les maison de reteraite se
trouvant dans le 95.

J'aurais préferé faire cela dynamiquement c a d avec deux liste des
le depart et modifier la seconde dynamiquement si on change la premiere
ms je ne sais pas le faire d'ailleurs si quelqu'un a une idée je suis
tou OUI

Merci de votre aide

Johnson

4 réponses

Avatar
Francois Tricard
a écrit:
Bonjour,


bonsoir,

....


J'aurais préferé faire cela dynamiquement c a d avec deux liste des
le depart et modifier la seconde dynamiquement si on change la premiere
ms je ne sais pas le faire d'ailleurs si quelqu'un a une idée je suis
tou OUI



Pour info, MM_jumpMenu est une fonction générée par Dreamweaver dans le
cadre de la gestion d'un menu pour le site. C'est sans importance pour
ce qui vous interesse ici.

Attention !!! OnChange est un événement JAVASCRIPT et non PHP. Le JS est
executé "en local" sur le navigateur tandis que le PHP l'est sur le
serveur !!! Il est impossible qu'un evenement JS déclenche une fonction
PHP sans rechargement de la page sauf en passant par AJAX.

Pour générer votre liste simplement, il vous faut recharger votre page
soit avec un redirection javascript, soit en passant par un formulaire
post, pour fournir à votre script PHP le No de département....

Regardez la doc PHP :

http://fr2.php.net/manual/fr/reserved.variables.php#reserved.variables.get


Merci de votre aide



Bon courage...


Johnson


François

Avatar
Pozzo
wrote:
J'aurais préferé faire cela dynamiquement c a d avec deux liste des
le depart et modifier la seconde dynamiquement si on change la premiere
ms je ne sais pas le faire d'ailleurs si quelqu'un a une idée je suis
tou OUI


Ajax me semble une piste interessante...

--
Pozzo - Monsieur Propre

Avatar
Patrick Mevzek
Ainsi lors de l'initialisation il y a qu'une seul liste déroulante et
j'aimerais que lorsque par exemple je clique sur un département
comment le 95 une liste s'ouvre avec tous les maison de reteraite se
trouvant dans le 95.


Problème classique, en rien spécifique à PHP.
(par contre votre code donné en exemple semble montrer que vous ne voyez
pas très clairement comment s'organise l'échange entre clients et
serveurs HTTP, ce qui s'exécute, où, et quand : en particulier le code
javascript ne peut pas appeler une fonction PHP comme vous l'avez fait)

Deux grandes voies:
- simple, rapide à développer, potentiellement problématique en terme
de taille de page : vous mettez toutes les données (toutes les valeurs
possibles de la deuxième liste) dans la page, en javascript, et une
petite routine, toujours en javascript, affiche le deuxième menu en
fonction du choix fait dans le premier.
Cela peut aussi se jouer avec les CSS, mais il faudra toujours du
javascript pour le choix

- plus long à développer, davantage à la mode : AJAX, c'est à dire,
toujours en javascript, que la page se met à jour en allant chercher les
données nécessaires auprès du serveur pour créer le deuxième menu une
fois un choix fait dans le premier.

Tout ceci bien sûr si vous ne voulez pas d'échange explicite (bouton
envoyer) entre le premier et le deuxième menu. Car sinon c'est encore
plus trivial.

Je suis sûr qu'on peut trouver sur le net plein d'exemple du premier cas,
et quelques exemples du deuxième.

--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
<http://www.dotandco.net/ressources/icann_registrars/details/index>

Avatar
Florian Sinatra
** @ 02/08/2006 22:53 :
Bonjour,


Bonsoir,

<select name="menu1" onChange= "essai()"> //appel de la fonction
essai voir ci dessus


Attends... tu essaies d'appeler une fonction PHP à partir d'une page
HTML ? T'es sûr d'avoir compris ce qu'est PHP ? Un serveur ? Un client ?

je suis tou OUI


Moi je suis tout NON.