|
|
|
| récupérer les valeurs d'un formulaire en php par Samya |
jeudi 24 juillet 2003 à 13:09:27 |
Voila un bout de mon code, j'ai ajouté une action php lors de l'évènement onClick sur un des boutons, je sais pas si c correct, si qqn a une solution ...
La methode test : permet de créer dynamiquement le tableau pour alimenter l'objet select <form method = "post" action="maquette.php" name="Type_Panne"> <p align="left"> Materiel <input type="radio" name="TypeP" value="Materiel" onClick="test('materiel'); <?$valeur_type = 'materiel';?>"> Logiciel <input type="radio" name="TypeP" value="Logiciel" onClick="test('logiciel'); <?$valeur_type = 'logiciel';?>"> </p> <select name="Libelle" onClick="javascript:selection();"> <option>- - Choisir dans la liste - -</option> </select> ... <p> <input type="button" name="valide_typeP" value ="Ok" onClick="alert('valeur choisie = '+Libelle.value); alert('valeur2 choisie : '+TypeP.value);"> </p> La premiere valeur s'affiche correctement mais pas la seconde g le msg d'erreur suivant : undefined J'ai pas envie d'utiliser un submit parceke ca me pose pb a l'affichage merci d'avance |
allo y a qqn ki peut m'aider ????? |
Renomme ta fonction "test" en "remplirSelect"... Tu pourrais avoir des problèmes. De mémmoire, "test" est un mot reservé.
Ensuite montre-nous l'ensemble de ton code (avec cette fameuse fonction. -= Bobinours - =- |
Alors le code complet est le suivant :
<form method = "post" action="" name="Type_Panne"> <p align="left"> Matériel <input type="radio" name="TypeP" value="materiel" onClick="rempliSelect('materiel');"> Logiciel <input type="radio" name="TypeP" value="logiciel" onClick="rempliSelect('logiciel');"> <!-- ON REMPLIT LA LISTE DEROULANTE AVEC LES DIFFERENTS LIBELLES --> <select name="Libelle" onClick="javascript:selection();"> <option>- - Choisir dans la liste - -</option> </select> <? // On cherche les libéllés dans la base de données include "connex.php"; $sql = 'SELECT * FROM Materiel;'; $query = mysql_query($sql) or die('Erreur : Exécution de la requete'); $i=0; while($result=mysql_fetch_array($query,MYSQL_ASSOC)) { $morc1[$i++] = $result['Libelle']; } $sql = 'SELECT * FROM Application;'; $query = mysql_query($sql) or die('Erreur : Exécution de la requete'); $j=0; while($result=mysql_fetch_array($query,MYSQL_ASSOC)) { $morc2[$j++] = $result['Libelle']; } mysql_close(); // On remplit deux tableaux avec les libéllés echo "<script language=\"Javascript\">"; echo "function rempliSelect(valeur){"; echo "var libMateriel = new Array(".$i.");"; echo "var libLogiciel = new Array(".$j.");"; for($k=0; $k < $i; $k++) echo "libMateriel[".$k."] = \"".$morc1[$k]."\";"; for($k=0; $k < $i; $k++) echo "libLogiciel[".$k."] = \"".$morc2[$k]."\";"; echo "if(valeur.toLowerCase() == 'materiel')"; echo "tmp=libMateriel;"; echo "else tmp=libLogiciel;"; for($k=0; $k<$i; $k++) { echo "document.Type_Panne.Libelle.options[".$k."] = new Option();"; echo "document.Type_Panne.Libelle.options[".$k."].value = tmp[$k];"; echo "document.Type_Panne.Libelle.options[".$k."].text = tmp[$k];"; } echo "}"; echo "</script>"; //=========== J'aimerai bien pouvoir faire ça ========== //Test de la valeur selectionnée if($_POST['Libelle']){ if(strtoupper($_POST['Libelle']) == "AUTRE") include_once "ajout.php"; } ?> <input type="button" name="valide_typeP" value ="Ok" onClick="if(Libelle.value =='AUTRE') alert('vous souhaitez ajouter un nouveau libelle'); <?include_once ajout.php;?>"> </p> </form> ========================================== dans le dernier objet je viens d'ajouter le include mais je sais pas si je peux faire ça ???? merci |
A vue d'oeil, ça m'a l'air pas mal du tout...
Maintenant, peux-tu poster le code complet une fois généré (HTML+JavaScript sans PHP) histoire de pouvoir tester réellement le code. Peux-tu aussi préciser le navigateur sur leque tu essaies ce code. Je n'ai pas compris à quoi te servait le dernier include et pourquoi tu utilises include_once() plutôt que include(). (C'est un détail, mais include_once() s'utilisera pour incorporer des librairies, fonction, varaiable à ne définir qu'une fois alors que include() renvoit le code du fichier ajout.php sans réfléchir). -= Bobinours - =-
|
Oops... Ce n'est pas ça que je voulais ;-)
Je voudrais le code HTML Source... Celui en faisant "Afficher la source" (bouton droit du de la souris sous PC). Je n'ai pas ta base donc je ne peux pas tester le PHP. Donc si tu me donnes juste le source HTML + JavaScript, je pourrais le tester en local avec un fichier .htm -= Bobinours - =-
|
Je viens d'essayer sur le navigateur Mozilla et ton code fonctionne parfaitement :-)
-= Bobinours - =-
|
C'est un peu chaud...
Lors du rechargement de la page, il faut que tu regénères la liste en fonction du type (Logiciel ou Matériel) et que tu selectionnes ensuite l'options récupéré document.formulaire.liste.selectedIndex = indice;
|
Pour savoir le type de la liste, fais appel au champ TypeP.
Pour le reste de ton code, il manque l'indice : onLoad="document.Type_Panne.Libelle.selectedIndex = 1; -= Bobinours - =-
|