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

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] Formulaire : Pb réaffichage valeur checkbox

 

Sujet(s) à lire :
    - Pb réaffichage formulaire dynamique
 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Formulaire : Pb réaffichage valeur checkbox

n°1575253
Ogvtr
Posté le 15-06-2007 à 00:13:47  profilanswer
 

Bonjour,
 
Pour commencer je tiens à annoncer que je débute en PHP et, après de nombreuses heures de recherches sur internet, j'ai réussi à faire un formulaire dynamique pour une association dont je m'occupe bénévolement.
 
La vérification des champs obligatoires s'effectue sur la même page et réaffiche les valeurs des champs.
 
Seulement, je suis bloqué dans le réaffichage de la valeur d'une "checkbox" après la validation incorrecte du formulaire.
 
Description du problème :
 
La checkbox "information" étant cochée par défaut, si on la décoche et l'on valide le formulaire en ayant un champ invalide, elle revient cochée !!!
 
J'ai également un autre problème en javascript que je détaille dans la section javascript : Sujet 105515
 
C'est pourquoi je sollicite votre aide pour concrétiser mon formulaire...
 
Merci par avance.
 

Code :
  1. $information = (isset($_POST['information'])) ? $_POST['information']                     : "";
  2. //-- DEBUT CHECKBOX INFORMATION --//
  3.   <table width="533">
  4.     <tr valign="baseline">
  5.       <td width="20" align="left"><div align="left">
  6.               <input name="information" type="checkbox" value="Oui" <?php echo($information == "Oui" ) ? ' checked="checked"' : checked; ?> />
  7.         </div></td>
  8.           <td width="501" valign="middle"> Je souhaite être informé(e) du résultat de l'opération.
  9.           </td>
  10.       </tr>
  11.   </table>
  12. //-- FIN CHECKBOX INFORMATION --//


Message édité par Ogvtr le 17-06-2007 à 13:41:40
mood
Publicité
Posté le 15-06-2007 à 00:13:47  profilanswer
 

n°1575831
Ogvtr
Posté le 16-06-2007 à 14:18:49  profilanswer
 

N'ayant toujours pas trouvé de réponse à mon problème, je remonte le sujet...
 
SVP pouvez-vous m'aider car je souhaiterais mettre rapidement en ligne mon formulaire.
 
MERCI

n°1575836
Deamon
Posté le 16-06-2007 à 14:53:36  profilanswer
 

à la place de "checked" tu mets un bout de php qui n'affiche rien si (isset($_POST["information"])) et si sa valeur est décochée, sinon il affiche "checked"

n°1575881
Ogvtr
Posté le 16-06-2007 à 18:28:10  profilanswer
 

Bjr Deamon : Comme je suis débutant, voilà au moins deux heures que je me tracasse la tête avec cette fameuse checkbox 'information' est je n'y arrive toujours pas...
 
En mettant :

Code :
  1. <input name="information" type="checkbox" value="Oui" <?php echo($information != "Oui" ) ? ' checked="null" ': checked; ?> />


La case est cochée par défaut mais; si on la décoche, elle revient cochée après la vérification du formalaire.
 
En mettant :

Code :
  1. <input name="information" type="checkbox" value="Oui" <?php echo($information == "Oui" ) ? ' checked="checked"' : null; ?> />


Là, la valeur cochée ou décochée est bien gardée après la vérification mais bien évidemment la checkbox est décochée par défaut !
 
Je me demande aussi s'il n'y a pas un problème avec :

Code :
  1. $information   = (isset($_POST['information']))   ? $_POST['information']                       : "";


 
Merci de votre aide pour me permettre d'avoir la checkbox cochée par défaut est de la garder décochée (si elle a été décochée) après la vérification du formulaire...
 
PS : Le code visible sur le premier post a été mis à jour.

n°1575885
Deamon
Posté le 16-06-2007 à 18:52:58  profilanswer
 

Mettez soit :

Code :
  1. <input name="information" type="checkbox" value="Oui" <?php if($information == "Oui"||!isset($_POST['information'])) echo 'checked';?> />


ou alors  

Code :
  1. $information   = (isset($_POST['information']))   ? $_POST['information']                       : "Oui";


n°1575890
Ogvtr
Posté le 16-06-2007 à 19:31:13  profilanswer
 

Deamon a écrit :

Mettez soit :

Code :
  1. <input name="information" type="checkbox" value="Oui" <?php if($information == "Oui"||!isset($_POST['information'])) echo 'checked';?> />


ou alors  

Code :
  1. $information   = (isset($_POST['information']))   ? $_POST['information']                       : "Oui";



 
J'ai essayé les deux possibilités mais ça ne fonctionne pas... Si elle a été décochée, la case revient toujours cochée après la verification.

n°1575905
Deamon
Posté le 16-06-2007 à 21:09:09  profilanswer
 

Ah ok j'ai compris, c'est que quand la case est non cochée c'est considéré comme s'il n'y avait aucune info. Dans ce cas le plus simple c'est de faire 2 boutons radio Oui/Non. Ou alors sinon il faut faire un test isset sur d'autres éléments du formulaire pour vérifier si on est en correction de formulaire ou non et ainsi marqué le checked ou pas.

 

Ex : <input name="information" type="checkbox" value="Oui" <?php if($information == "Oui"||!isset($_POST['nom'])) echo 'checked';?> />

 

Et sinon pour la vérification des champs une seule erreur s'affiche même s'il y en a plusieurs moi je mettrais directement tout ce qui ne va pas. Ca évite de faire plusieurs fois l'envoi de formulaire. Dans ce cas il faudrait donc initialiser $erreur=""; au tout début et ensuite faire pour chaque test d'erreur (les elseif seraient remplacés par if) $erreur.="...Texte pour cette erreur..."; ce qui aura pour but de concaténer toutes les erreurs.


Message édité par Deamon le 16-06-2007 à 21:10:27
n°1575939
Ogvtr
Posté le 17-06-2007 à 06:45:29  profilanswer
 

Merci beaucoup Deamon, maintenant ça fonctionne parfaitement !!!
 
Comme je suis débutant, j'ai pour le moment beaucoup de mal avec les fonctions et les variables PHP. Mais en y regardant de plus près c'est plutot logique...
 
Merci également pour le conseil concernant les messages d'erreurs. C'est vrai que ça peut être très intéressant d'avoir tous les messages qui s'affichent en même temps mais je ne souhaite pas que le bouton de validation du formulaire soit trop bas par rapport à la balise de réaffichage en cas d'erreurs... Enfin, je vais y réfléchir.
 
Maintenant il ne me reste plus qu'à trouver une solution concernant mon problème de réaffichage des champs dynamiques (Sujet 105515), mais là je crois que ça viens du javascript.
 
Encore MERCI...


Message édité par Ogvtr le 17-06-2007 à 06:46:25

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

  [Résolu] Formulaire : Pb réaffichage valeur checkbox

 

Sujets relatifs
Pb réaffichage formulaire dynamiqueprobleme de label dans un formulaire
[Résolu] utilisation d'une fonction d'un autre classeur.[résolu] Champs nommé COUNT dans une table paradox
Checkbox de couleursSupprimer un element d'un tableau multidimentionnelle js [Resolu]
Formulaire non envoyé ...création formulaire par programmation en VBScript/HTA
[Résolu]Requete selection d'historique 
Plus de sujets relatifs à : [Résolu] Formulaire : Pb réaffichage valeur checkbox


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