Rafraichir form après choix dans <SELECT>
Résolu/Fermé
reedbedroom
Messages postés
80
Date d'inscription
lundi 11 juillet 2011
Statut
Membre
Dernière intervention
1 janvier 2020
-
15 nov. 2012 à 17:56
reedbedroom - 16 nov. 2012 à 17:05
reedbedroom - 16 nov. 2012 à 17:05
A voir également:
- Rafraichir form après choix dans <SELECT>
- Liste déroulante de choix excel - Guide
- Superposez les images à télécharger avec le logiciel de votre choix. quel animal apparaît ? ✓ - Forum Photo numérique
- Please select boot device - Forum Matériel & Système
- Faire un trou dans une forme illustrator ✓ - Forum Illustrator
- Reboot and select proper boot device asus - Forum Matériel & Système
2 réponses
incaout
Messages postés
347
Date d'inscription
lundi 8 septembre 2008
Statut
Membre
Dernière intervention
15 novembre 2012
74
15 nov. 2012 à 22:21
15 nov. 2012 à 22:21
Bonsoir.
Une solution consiste à utiliser une requête Ajax déclarée dans une fonction javascript qui serait appelée sur l'événement "onchange" de ta zone de liste pays.
La requête Ajax appelle un script PHP en lui passant en méthode GET ou POST au choix, l'id ou le nom du pays. Elle reçoit en retour une chaine JSON générée par le script PHP et contenant la liste des villes. Elle peut alors effacer le contenu de la zone de liste ville et insérer les enregistrements reçus. Le tout se fait sans rechargement de page.
Si tu ne connais pas Ajax, tu peux trouver de bons tutos sur internet en tapant requête Ajax ou httprequest. Par ailleurs, tu peux utiliser une librairie javascript comme prototypejs ou jquery qui facilite grandement l'utilisation de requêtes Ajax.
Une autre solution au plus simple est de créer une page qui contient ton script PHP de traitement, puis ton code HTML. Il te faut ensuite un formulaire qui contient tes deux zones de liste et un champ caché nommé "op" par exemple qui sert à mémoriser l'action demandée. Le paramètre "action" de ton formulaire rappelle cette même page. Tu associes une fonction javascript à l'événement onchange de ta liste pays. Cette fonction met à jour la propriété value du champ caché "op" (par exemple "chargeVilles" puis poste le formulaire. La page est rappelée. Le script PHP figurant en début de page vérifie la présence de données dans $_POST et si en trouve, teste la valeur du champ "op", lance le traitement associé (en utilisant les autres valeurs contenues dans le $_POST - dans ton cas l'id ou le nom du pays sélectionné) et place les données dans un tableau PHP (par exemple $listeVilles). Enfin, il faut que les "<option>" de ta liste ville soit générés par PHP à partir des informations lues dans le tableau.
Ex :
<select name="villes">
<?php
if(isset($listeVilles) && !empty($listeVilles))
{
foreach($listeVilles as $id=>$nom)
{
echo '<option value="' . $id . '">' . $nom . '</option>';
}
}
?>
</select>
Voilà grosso modo, la démarche, mais bien sûr, elle peut être optimisée.
Bon courage
IC
Une solution consiste à utiliser une requête Ajax déclarée dans une fonction javascript qui serait appelée sur l'événement "onchange" de ta zone de liste pays.
La requête Ajax appelle un script PHP en lui passant en méthode GET ou POST au choix, l'id ou le nom du pays. Elle reçoit en retour une chaine JSON générée par le script PHP et contenant la liste des villes. Elle peut alors effacer le contenu de la zone de liste ville et insérer les enregistrements reçus. Le tout se fait sans rechargement de page.
Si tu ne connais pas Ajax, tu peux trouver de bons tutos sur internet en tapant requête Ajax ou httprequest. Par ailleurs, tu peux utiliser une librairie javascript comme prototypejs ou jquery qui facilite grandement l'utilisation de requêtes Ajax.
Une autre solution au plus simple est de créer une page qui contient ton script PHP de traitement, puis ton code HTML. Il te faut ensuite un formulaire qui contient tes deux zones de liste et un champ caché nommé "op" par exemple qui sert à mémoriser l'action demandée. Le paramètre "action" de ton formulaire rappelle cette même page. Tu associes une fonction javascript à l'événement onchange de ta liste pays. Cette fonction met à jour la propriété value du champ caché "op" (par exemple "chargeVilles" puis poste le formulaire. La page est rappelée. Le script PHP figurant en début de page vérifie la présence de données dans $_POST et si en trouve, teste la valeur du champ "op", lance le traitement associé (en utilisant les autres valeurs contenues dans le $_POST - dans ton cas l'id ou le nom du pays sélectionné) et place les données dans un tableau PHP (par exemple $listeVilles). Enfin, il faut que les "<option>" de ta liste ville soit générés par PHP à partir des informations lues dans le tableau.
Ex :
<select name="villes">
<?php
if(isset($listeVilles) && !empty($listeVilles))
{
foreach($listeVilles as $id=>$nom)
{
echo '<option value="' . $id . '">' . $nom . '</option>';
}
}
?>
</select>
Voilà grosso modo, la démarche, mais bien sûr, elle peut être optimisée.
Bon courage
IC
Bonsoir,
Et merci pour ta réponse. J'ai retrouver la solution que j'avais utilisé il y a quelques temps. Moins compliquée et suffisante pour le site que je réalise actuellement.
Au cas où cela intéresse quelques la voici :
Merci.
Et merci pour ta réponse. J'ai retrouver la solution que j'avais utilisé il y a quelques temps. Moins compliquée et suffisante pour le site que je réalise actuellement.
Au cas où cela intéresse quelques la voici :
<select name="pays_sportif" id="pays_sportif" onchange="window.location='index.php?page=promesse_don.php'&pays_sportif=' + document.form.pays_sportif.value;" > <? if($pays_sportif != "") { echo '<option value="'.$pays_sportif.'" selected="selected">'.$pays_sportif.'</option>'; } ?> <option value="Allemagne">Allemagne</option> <option value="Australie">Australie</option> <option value="Belgique">Belgique</option> <option value="Chili">Chili</option> <option value="Aspagne">Espagne</option> <option value="Usa">États Unis</option> <option value="Finlande">Finlande</option> <option value="France">France</option> <option value="Italie">Italie</option> <option value="Nouvelle zelande">Nouvelle Zélande</option> <option value="Portugal">Portugal</option> <option value="Royaume uni">Royaume Uni</option> <option value="Suede">Suède</option> </select>
Merci.
16 nov. 2012 à 16:58