Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1374 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Placer une condition dans un form ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Placer une condition dans un form ?

n°1250494
3tnieS
Posté le 22-11-2005 à 08:44:41  profilanswer
 

Bonjour, j'ai besoin d'un peu d'aide pour faire afficher un formulaire. Je voux explique :
Si l'utilisateur choisi l'option "Autre" dans une liste de form, on fait afficher deux nouveaux champs dans le même formulaire pour pouvoir rajouter le nom ou le mdp (par exemple).
Le code donne ceci :  
 

Code :
  1. <html>
  2. <body>
  3. <form method="GET" action="chantieradd.php"> // J'ouvre mon formulaire
  4. <select size='1' name="nomouvrage"> // Je defini la liste
  5. // Connexion et requete pour la la BDD
  6. <?
  7. include('config.php');
  8. @mysql_connect($host,$log,$pass);
  9. @mysql_select_db($dbname);
  10. $rep = @mysql_query("select nom from mouvrage" ); 
  11. $resreq=mysql_query($rep) or die ("Eurreur requete" );
  12. // Ici j'affiche dans ma liste tous les noms que je trouve dans ma BDD.
  13. while ($enreg=mysql_fetch_array($resreq))
  14. echo "<option>".$enreg['nom']."</option>";
  15. mysql_close($connexion);
  16.  ?>
  17. // J'affiche également, dans la liste, un choix "Autre"
  18. <option>Autre</option>
  19. // On ferme les balises
  20. </select>
  21. </form>
  22. </body>
  23. </html>


 
Je sais pas trop comment on peut faire pour savoir si l'option "Autre" est selectionné tout en restant dans la page du formulaire.
Si vous pouviez m'expliquez en gros la marche à suivre, thx.


Message édité par 3tnieS le 22-11-2005 à 09:59:01
mood
Publicité
Posté le 22-11-2005 à 08:44:41  profilanswer
 

n°1250543
sielfried
Posté le 22-11-2005 à 10:06:58  profilanswer
 

Si tu veux afficher deux champs supplémentaires sans recharger la page, c'est du côté de javascript qu'il faut voir, pas php.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1250547
3tnieS
Posté le 22-11-2005 à 10:13:34  profilanswer
 

Ok je vais aller voir du côté du JS, mais cela va pas foutre le bordel dans le code d'inserer du javascript ?  
(Je comprend pas trop comment le JS & le php font pour fonctionner tout les deux étant donné que l'un est coté client et l'autre serveur.)

n°1250552
FlorentG
Posté le 22-11-2005 à 10:23:40  profilanswer
 

C'est pas bien de faire ça. Il faut que les champs soient tout de suite là. C'est une règle d'usabilité de ne jamais faire apparaître des choses. Beaucoup d'utilisateurs seront déroutés sinon :(
 
 
Je recherche vite-fait des références parlant de ça

n°1250562
3tnieS
Posté le 22-11-2005 à 10:38:53  profilanswer
 

Merci pour ta recherche FlorentG, mais l'utilisations de ce formulaire ne sera reservé qu'aux admin (cela les déroutera la première fois, mais on peut penser qu'ils prendront l'habitude).
 
Sinon est-il possible de placer les champs (en grisé) dans le formulaire mais les rendre accessible que si ma condition est verfié ? En clair, j'affiche mon formulaire et si "Autre" n'est pas selectionné dans la liste les 2 champs restent grisés (donc inaccessible :p ) dans mon formulaire.

n°1250577
FlorentG
Posté le 22-11-2005 à 11:07:14  profilanswer
 

Voilà, il faut les mettre en grisé, c'est mieux.
 
Au chargement de la page, un script les met en grisé (propriété disabled je crois). Puis lors de la sélection de l'option "autre", ils s'activent :)

n°1250610
3tnieS
Posté le 22-11-2005 à 11:46:14  profilanswer
 

Bon j'ai recherché un peu sur le net pour en savoir plus sur les champs grisés:
J'ai trouvé deux manières différentes, il y a bien la propriété "disabled" mais aussi "readonly".  
Je crois que la difference entre les deux est que la propriété "disabled" ne va pas passer l'info à la page après la validation du formulaire, alors que "readonly" le fait même si les champs sont grisés.
Il faut passer par du JS pr activer/desactiver des champs grisés,--> http://javascript.developpez.com/f [...] r#ReadOnly

n°1250769
3tnieS
Posté le 22-11-2005 à 15:30:45  profilanswer
 

Voila j'ai trouvé comment faire activer/desactiver la proprieté disabled mais cela ne semble marcher qu'avec les checkbox. En effet je n'arrive pas a activer un "disabled" pour une des valeurs de liste du formulaire.
Voici mon code pour activer un champs si on selectionne l'option "Autre", mais bon ca tourne pas  :pt1cable:  
 

Code :
  1. <HTML>
  2. <head>
  3. //Script JS
  4. <script type="text/javascript">
  5. function ChangeStatut(formulaire) {
  6. if(document.formulaire.nomouvrage.value == "Autre" ) {document.formulaire.new.disabled = false }
  7. if(document.formulaire.nomouvrage.value != "Autre" ) {document.formulaire.new.disabled = true }
  8. }
  9. </script>
  10. </head>
  11. <BODY>
  12. //Début du form
  13. <form method="GET" action="listemp.php">
  14. <select size='1' name="nomouvrage" onClick="ChangeStatut(this.form)">
  15. //Connexion de la BDD
  16. <?
  17. include('config.php'); 
  18. @mysql_connect($host,$log,$pass); 
  19. @mysql_select_db($dbname); 
  20. $rep = @mysql_query("select nom from mouvrage" ); 
  21. $resreq=mysql_query($rep) or die ("Eurreur requete" ); 
  22. // Ici j'affiche dans ma liste tous les noms que je trouve dans ma BDD.  
  23. while ($enreg=mysql_fetch_array($resreq)) 
  24.     echo "<option>".$enreg['nom']."</option>"; 
  25.     mysql_close($connexion);
  26.         ?> 
  27. <option>Autre</option>
  28. </select>
  29. // Le champs disabled par defaut que je veux activer si on selectionne la valeur "Autre" dans la liste.
  30. <input type="text" name="new" size="20" value="Bouh" disabled>
  31. <input type="submit" value="Envoyer">
  32. </form>
  33. </body>
  34. </html>


 
Ca faisait un bout de temps que j'avais pas vu du JS donc je suis pas sur que cela tienne la route

n°1250883
naceroth
Posté le 22-11-2005 à 17:15:25  profilanswer
 

Bon, j'ai pas eu le courage d'adapter à ton cas, tu me pardonneras :D

Code :
  1. <script language='JavaScript1.4'>
  2. function change(monselect)
  3. {
  4. if (monselect == 2){
  5. document.getElementById('bouh').disabled = '';
  6. document.getElementById('bouh').focus();
  7. } else {
  8. document.getElementById('bouh').disabled = 'disabled';
  9. }
  10. }
  11. </script>
  12. <body>
  13. <form action="" method="get" name="form">
  14. <input name="bouh" id="bouh" type="text" disabled="disabled" />
  15. <select name="kkwet" onChange="change(this.selectedIndex)">
  16. <option value="Saab">Saab</option>
  17. <option value="Volvo">Volvo</option>
  18. <option value="Autre">Autre</option>
  19. </select>
  20. </form>
  21. </body>


 
doit rendre accessible le champ text (et lui filer le focus) quand Autre est choisi et le rendre inaccessible sinon. (je suis pas pro-js non plus, mais ça doit fonctionner)
 
//edit : script un peu plus valide point de vue xhtml


Message édité par naceroth le 22-11-2005 à 17:18:59
n°1251207
3tnieS
Posté le 23-11-2005 à 01:13:53  profilanswer
 

naceroth j'ai testé ton script en l'adaptent  à mon cas, ca ne fonctionnait pas. Ensuite je l'ai testé sans changer tes données cette fois ci et ca tourné pas non plus.   :sweat:  
Je suis un peu bloqué, je manipule pas trop le javascript.  Qqn peut m'expliquer la démarche en JS ?

mood
Publicité
Posté le 23-11-2005 à 01:13:53  profilanswer
 

n°1251216
naceroth
Posté le 23-11-2005 à 02:16:12  profilanswer
 

J'emmerde Internet Explorer :D
 
Bref, même code en remplacant le JavaScript1.4 par JavaScript tout court, et monsieur IE devrait arrêter de faire la tête :)

n°1251273
3tnieS
Posté le 23-11-2005 à 10:29:50  profilanswer
 

Ouais, le probleme venait bien du JavaScript1.4. Je l'aurais jamais trouvé :p. Merci bcp naceroth

n°1252742
FlorentG
Posté le 24-11-2005 à 22:36:54  profilanswer
 

Voilà, en codant avec une DTD Strict, tu aurait apprit que l'attribut language n'existe plus, qu'on utilise type, et que la valeur pour du JS est text/javascript :

<script type="text/javascript">
...

n°1252854
naceroth
Posté le 25-11-2005 à 01:51:56  profilanswer
 

FlorentG a écrit :

Voilà, en codant avec une DTD Strict, tu aurait apprit que l'attribut language n'existe plus, qu'on utilise type, et que la valeur pour du JS est text/javascript :

<script type="text/javascript">
...



 
Comme je case jamais les rares jscript que j'écris directement dans la page html mais plutot en <link>, je ne l'aurais de toutes manières pas remarqué  :hello:

n°1253093
martialus
Brrrrrrrrr
Posté le 25-11-2005 à 11:40:09  profilanswer
 

Exemple insertion de javascript dans un code php
if (($etape == 4) && ($attention == 1) && ($erreur != 1))
  {
   echo("<script langage=\"javascript\">\r\n" );
   echo("function attention() {\r\n" );
   echo("url = \"index.php?etape=4&vattention=1\";\r\n" );
   echo("window.location.replace(url);\r\n" );
   echo("}\r\n" );
   echo("</script>\r\n" );
}

n°1254943
FlorentG
Posté le 28-11-2005 à 20:58:32  profilanswer
 

martialus a écrit :

Exemple insertion de javascript dans un code php
if (($etape == 4) && ($attention == 1) && ($erreur != 1))
  {
   echo("<script langage=\"javascript\">\r\n" );
   echo("function attention() {\r\n" );
   echo("url = \"index.php?etape=4&vattention=1\";\r\n" );
   echo("window.location.replace(url);\r\n" );
   echo("}\r\n" );
   echo("</script>\r\n" );
}


On vient de dire que l'attribut language existe plus :o Faudrait penser à lire. Et langage non plus d'ailleurs. Et c'est quoi ces echos tous moches ?

echo '<script type="text/javascript">', "\r\n",
  ...
  '<script>', "\r\n";


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Placer une condition dans un form ?

 

Sujets relatifs
Créer un contrôle dans une Form depuis un objet ?[VBA] afficher un graphique dans un "form"
showmessage sans form[vindows form] liste (treeview ?) ala outlook
Placer un objet en sessionclic souris à travers une form ... ?
Afficher un classeur excel dans une Formboucle if avec condition en VBS !
La meilleur méthode pour placer des images?comment passer d'un Form à l'autre
Plus de sujets relatifs à : Placer une condition dans un form ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR