Champs obligatoire dans un formulaire
x-timas
Messages postés
127
Statut
Membre
-
x-timas Messages postés 127 Statut Membre -
x-timas Messages postés 127 Statut Membre -
Bonjour,
je ne suis pas très expérimente en programmation web mais j'ai une bonne idée sur le sujet. Je bloque un petit peu sur problème.
En fait je construit depuis une base de donnée un questionnaire, chaque question contient un booleen 'obligatoire' qui prend '1' si on veut que la question soit obligatoire.
En soumettant les réponses je dois si les champs obligatoire sont remplis ou pas, classique en javascript... Le problème c'est que je ne sais pas comment m'y prendre de façon dynamique. Je veux dire les question changent souvent et c'est moi qui construit le formulaire via php.
J'ai pensé à des balise hidden avec un id que j'incrémente à chaque fois que je trouve une question obligatoire mais j'ignore comment faire passer toute les valeurs relatives à cette question à ma fonction (sous forme de tableau peut je ne sais pas).
Quelqu'un a fait un truc ui ressemble à ça? Forcément...
Aidez moi s'il vous plaît. I'am running out of time
je ne suis pas très expérimente en programmation web mais j'ai une bonne idée sur le sujet. Je bloque un petit peu sur problème.
En fait je construit depuis une base de donnée un questionnaire, chaque question contient un booleen 'obligatoire' qui prend '1' si on veut que la question soit obligatoire.
En soumettant les réponses je dois si les champs obligatoire sont remplis ou pas, classique en javascript... Le problème c'est que je ne sais pas comment m'y prendre de façon dynamique. Je veux dire les question changent souvent et c'est moi qui construit le formulaire via php.
J'ai pensé à des balise hidden avec un id que j'incrémente à chaque fois que je trouve une question obligatoire mais j'ignore comment faire passer toute les valeurs relatives à cette question à ma fonction (sous forme de tableau peut je ne sais pas).
Quelqu'un a fait un truc ui ressemble à ça? Forcément...
Aidez moi s'il vous plaît. I'am running out of time
<table class="afficher_sondage">
<form method="post" name="apercu_sondage" onsubmit="return veriform_champ_oblig_sondage()">
<input type="hidden" name="numero_page" value="<?php echo $_POST['numero_page']++;?>" />
<?php
foreach($questions_pp as $cle=>$q){
foreach($q as $key=>$data){ //on parcout chaque question à part
echo "<tr style=\"text-align:center\">".$data['titre_q'];
if($data['obligatoire'] == "1"){echo "<input type=hidden id ????/>"}
echo "</tr>";
}
}
?>
</form>
</table>
A voir également:
- Champs obligatoire dans un formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook compte désactivé - Guide
- Formulaire de reclamation instagram - Guide
- Tinder photo obligatoire - Accueil - Utilitaires
- Formulaire de contact le bon coin introuvable - Forum Réseaux sociaux
4 réponses
Et bien comme id je lui donnerai le nom du champ texte de la réponse avec un 1 s'il est obligatoire et un 0 sinon par exemple nom__1 si le nom est obligatoire et prenom__0 si le prénom est pas obligatoire.
Ensuite tu récupères tous les champ avec getElementsByTagName('input');
Tu parcours les éléments et à chaque fois, grace au split, tu coupes le nom de l'élément au niveau du __
S'il n'y a pas de __, c'est un champ texte, sinon tu regarde ce qu'il y a après (si c'est un 0 ou un 1)
Et si c'est un 1, tu vérifies que le champ ayant ce nom n'est pas vide.
Il y a surement plus simple mais je pense que tu pourras t'en sortir comme ça...
Ensuite tu récupères tous les champ avec getElementsByTagName('input');
Tu parcours les éléments et à chaque fois, grace au split, tu coupes le nom de l'élément au niveau du __
S'il n'y a pas de __, c'est un champ texte, sinon tu regarde ce qu'il y a après (si c'est un 0 ou un 1)
Et si c'est un 1, tu vérifies que le champ ayant ce nom n'est pas vide.
Il y a surement plus simple mais je pense que tu pourras t'en sortir comme ça...
Ou sinon tu rajoutes une class à chaque champs obligatoire, et tu récupère la liste des champs obligatoires avec un getElementsByClassName
Je ne connaissais pas cette propriété.
C'est vrai que c'est BEAUCOUP plus simple! =)
Et c'est une propriété très pratique, je vais essayer de m'en souvenir ! =)
C'est vrai que c'est BEAUCOUP plus simple! =)
Et c'est une propriété très pratique, je vais essayer de m'en souvenir ! =)
Bien, on commence à trouver une piste:
voila ce que j'ai ajouté dans mon code: on fait je test le type de la question pour savoir le genre de champs que je dois mettre.
Le $_POST['la_reponse'] aura comme clés les id des question pour que je puisse associer à chaque quetion sa réponse.
Pour ce que tu m'a dit, je met le champs input pour la vérification à chaque fois même si la question n'est pas obligatoire?
Par contre que diriez vous de cette solution, si c'est faisable ou pas je veux dire:
1. a chaque fois que je trouve une question obligatoire, je concatène l'id de la question dans une chaine de caratère avec comme séparateur un "__"
2. à la fin de la boucle qui me parcourt toute les question je place un input hidden avec comme id la chaine que j'ai construit au fur et à mesure
3. dans ma fonction js je split les champs et je recherche les champs de chaque id, puisque je met l'id des question dans le name (
Par exemple si les question d'id 56 et 18 sont obligatoire j'aurait ma chaine "56__18"
Et puis je regarde les valeurs qui sont dans la_reponse?
voila ce que j'ai ajouté dans mon code: on fait je test le type de la question pour savoir le genre de champs que je dois mettre.
switch ($q['type']){
case 'text1':
echo "<input name=\"la_reponse[".$q['id_question']."][]"\" type=\"text\" />";
break;
case 'text2':
break;
case 'textarea':
echo "<textarea name=\"la_reponse[".$q['id_question']."][] ></textarea>";
break;
case 'radio':
break;
case 'checkbox':
...
Le $_POST['la_reponse'] aura comme clés les id des question pour que je puisse associer à chaque quetion sa réponse.
Pour ce que tu m'a dit, je met le champs input pour la vérification à chaque fois même si la question n'est pas obligatoire?
Par contre que diriez vous de cette solution, si c'est faisable ou pas je veux dire:
1. a chaque fois que je trouve une question obligatoire, je concatène l'id de la question dans une chaine de caratère avec comme séparateur un "__"
2. à la fin de la boucle qui me parcourt toute les question je place un input hidden avec comme id la chaine que j'ai construit au fur et à mesure
3. dans ma fonction js je split les champs et je recherche les champs de chaque id, puisque je met l'id des question dans le name (
la_reponse[".$q['id_question']."][])
Par exemple si les question d'id 56 et 18 sont obligatoire j'aurait ma chaine "56__18"
Et puis je regarde les valeurs qui sont dans la_reponse?