Page 1 sur 1

Formulaire avec condition - Si champ 1 NON VIDE, alors Champ 2 doit être NON VIDE

Posté : 11 nov. 2016, 16:50
par pmfontaine
Bonjour,
Dans un formulaire qui me permet de renseigner une table Mysql avec le nom des membres d'un bureau avec leur fonction.
Je cherche un moyen pour que lorsque le champs "nom_prenom" est renseigné, le champs fonction doit aussi renseigné.
Mais pas dans le cas contraire.
En gros c'est un "required" conditionnel
J'espère m’être correctement expliqué.
Merci d'avance pour votre aide
Patrick

Code : Tout sélectionner

<form action="upload.php" method="post" enctype="multipart/form-data"> <?PHP $ligne = 0; while ($ligne <= 16) { ?> <input type="text" name="nom_prenom[$ligne]"/> <select name="bureau[$ligne]"> <option value=""></option> <option value="Président">Président</option> <option value="Vice Président">Vice Président</option> <option value="Secrétaire">Secrétaire</option> <option value="Trésorier">Trésorier</option> <option value="Trésorier adjoint">Trésorier adjoint</option> <option value="Membres">Membres</option> </select> <br/> <?PHP $ligne++; } ?> <input type="submit" name="bureau" value="M à J bureau !"> </form>

Re: Formulaire avec condition - Si champ 1 NON VIDE, alors Champ 2 doit être NON VIDE

Posté : 11 nov. 2016, 21:16
par Aureusms
Tu as deux choix : vérification côté client via Javascript et surtout vérification côté PHP (obligatoire : c'est un conseil)
Côté javascript, j'utiliserai la librairie jQuery :

Code : Tout sélectionner

$(document).on({ click : function (event) { //on empèche le submit event.preventDefault(); //on empèche la propagation du click event.stopPropagation(); //on récupère l'élément cliqué var element = event.target||event.srcElement; var f = $(element); //Est ce que l'élément cliqué est un bouton submit portant le nom bureau ? if (f.is('input[type="submit"][name="bureau"]')) { //on récupère tous les input de types texte f.parents('form').find('input[type="text"]').each(function(i,v) { //est ce que le champ est renseigné ? if ($(this).val().length != 0) { //on vérifie que le select juste suivant est renseigné if ($(this).next('select').val().length == 0) { alert ('le select suivant l\'input '+i+' n\'est pas renseigné'); return false; } } }); // il n'y a pas eu d'alerte = on soumet le formulaire. f.parents('form').submit(); } },'form');
Côté PHP, à toi de jouer.

Re: Formulaire avec condition - Si champ 1 NON VIDE, alors Champ 2 doit être NON VIDE

Posté : 11 nov. 2016, 23:00
par pmfontaine
Bonsoir Aureusms et merci beaucoup pour ta réponse.
Pour le js je n'y connait vraiment rien, je ne sais même pas utiliser le code que tu m'a donné.
Pour le PHP je suppose que tu me suggère un teste du même style que sur cette pagehttp://www.apprendre-php.com/tutoriels/ ... -post.html ?

Si OUI, Je vais essayer de l'adapter et je reviendrais sur le forum vous dire si j'y suis arrivé.
si NON est-ce que tu peux me donner une piste ?
Merci
Patrick

Re: Formulaire avec condition - Si champ 1 NON VIDE, alors Champ 2 doit être NON VIDE

Posté : 13 nov. 2016, 20:57
par Aureusms
C'est cela, tu dois tester toutes les variables POST avant de les enregistrer

Re: Formulaire avec condition - Si champ 1 NON VIDE, alors Champ 2 doit être NON VIDE

Posté : 14 nov. 2016, 19:24
par pmfontaine
Bonsoir,
Ok je suis arrivé a mes fin en partant de l'exemple que j'ai mis en lien ci-dessus.
Merci Aureusms.
Patrick