Votre question

Comment griser un formulaire à partir d'une case cochée?

Tags :
  • Javascript
  • Programmation
Dernière réponse : dans Programmation
15 Novembre 2006 11:51:47

Citation :
Davidoux94

Bonsoir. :) 

J'ai édité mon premier message afin d'alléger le topic. :) 

Je vous remercie beaucoup de m'avoir aidé : maintenant tout marche bien.

J'ai une autre question, mais j'ignore si je dois posté dans ce même topic ou non. Qu'on m'excuse si ce n'est pas le cas. :) 

Je voudrais que l'entièreté du questionnaire soit "grisé" (cad non remplissable) dans le cas ou la personne cocherais "non" à la première question. Comment puis-je procéder?

Encore merci pour vos conseil : c'est très sympa. :) 


Citation :
crazycat


peut-être qu'en ajoutant l'attribut "disabled" ça peut marcher, mais il faut faire ça en javascript.


Citation :
okinou

tu rajoute sur les input : disabled="disabled"

En javascript pour "tout" activer d'un coup, ou une condition php en + sur les input.

Et le mieux est de cree un sujet différent par probleme, sinon on ne s'en sort plus.

Citation :

crazycat

heu, disabled n'a pas d'argument.
en javascript, c'est document.form.element.disabled = true;
en html: <input type="machin" name="bidule" disabled />

---------------
L'homme est un loup level 14 pour l'homme.


Re-bonjour, et merci de tenter de me répondre. :) 

Donc, grosso modo, je dois placer la balise disabled devant mes input?

Mais comment l'ordi va-t-il comprendre qu'en cliquant précisément la case n°1, les cases n°2 à 12 devront se griser?

Dans l'exemple suivant, comment puis-je appliquer cette méthode?

Citation :
<?php
$validation=0;
if($valider) {
if(!$sexe || !$age || !$seduit || !$moment || !$seances || !$materiel || (!$lundi && !$mardi && !$mercredi && !$jeudi && !$vendredi && !$nimportedi) || (!$sportype0 && !$sportype1 && !$sportype2 && !$sportype3 &&!$sportype4 && !$sportype5) || $budget=='' ) {
echo "<font color='red'>Vous devez répondre à toutes les questions, merci!</font><br>";
} else {
if($seduit=='oui') {
echo "<font color='red'>Vous devez répondre à toutes les questions, merci!</font><br>";
} else {
echo "Merci de votre contribution et à très bientot !!<br><br>";
$validation=1;
}

}

}

if($validation==1) {
$mail="VOUS
Vous etes : $sexe
Votre age : $age
Seriez-vous seduit(e) par la mise en place de seances de sport sur votre site de travail? : $seduit
A quel moment de la journee prefereriez-vous les seances? : $moment
Combien de seances hebdomadaires vous conviendraient le mieux? : $seances
Quels jours de preference? : $lundi $mardi $mercredi $jeudi $vendredi $nimportedi
Type de sport? $sportype0 $sportype1 $sportype2 $sportype3 $sportype4 $sportype5
Prefereriez vous que le materiel soit fourni ou amener le votre ? : $materiel
Quel budget maximum annuel seriez-vous pret(e) a investir dans ces seances ? : $budget";



?>


Merci à tous. :) 

Autres pages sur : griser formulaire partir case cochee

a c 145 L Programmation
15 Novembre 2006 12:14:00

bon, je vais essayer de fairce ça simplement et proprement.
Tout d'abord, on va partir du principe que la case à cocher "utile" s'appelle "interet".
le code html de ta case doit être:
<input type="checkbox" name="interet" onchange="bascule(this);" />

Et c'est la fonction bascule() qui va tout faire:
  1. function bascule(checkfield) {
  2. case = eval(checkfield);
  3. for (i=0;i<document.form.elements.length;i++) {
  4. if (document.form.elements[i].name!="interet") {
  5. if (case.checked == true) document.form.elements[i].disabled = false;
  6. else document.form.elements[i].disabled = true;
  7. }
  8. }
  9. }

Bon, c'est pas optimisé ni testé, c'est fait de tête, mais ça doit donner un truc dans le genre :) 
15 Novembre 2006 12:20:53

Très bien. Je vais essayé. :) 

En tout cas merci !
Contenus similaires
15 Novembre 2006 14:01:44

J'ai essayé ce qui suit, mais cela ne fonctionne pas.

J'ai l'erreur suivante : "Parse error: parse error, unexpected T_STRING, expecting ')' in /homepages/8/d154407087/htdocs/questionnaire241.php on line 3".

Selon vous, quel est le probleme?

Voici le code PHP que je viens de mettre :
Citation :

<?php

function bascule(checkfield) {
case = eval(checkfield);
for (i=0;i<document.form.elements.length;i++) {
if (document.form.elements.name!="interet" ) {
if (case.checked == true) document.form.elements.disabled = false;
else document.form.elements.disabled = true;
}
}
}


$validation=0;
if($valider) {
if(!$sexe || !$age || !$interet || !$moment || !$seances || !$materiel || (!$lundi && !$mardi && !$mercredi && !$jeudi && !$vendredi && !$nimportedi) || (!$sportype0 && !$sportype1 && !$sportype2 && !$sportype3 &&!$sportype4 && !$sportype5) || $budget=='' ) {
echo "<br><br><br><br><br><br><br><br><div align=center><font size=+1 face='Arial, Helvetica, sans-serif'>Il semblerait que vous ayez oublié de répondre à une ou plusieurs questions...<br><br><br>Utilisez la fonction page précédente de votre navigateur pour compléter votre formulaire. Merci.</font></div><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
} else {
if($seduit=='oui') {
echo "<br><br><br><br><br><br><br><br><div align=center><font size=+1 face='Arial, Helvetica, sans-serif'>Il semblerait que vous ayez oublié de répondre à une ou plusieurs questions...<br><br><br>Utilisez la fonction page précédente de votre navigateur pour compléter votre formulaire. Merci.</font></div><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
} else {
echo "<br><div align=center><br><br><br><br><font size=+3 face='Arial, Helvetica, sans-serif'>*****************************************************</font><br><br><font size=+4 face='Arial, Helvetica, sans-serif'>www.sport-pros.com&lt;/font> <font size=+1 face='Arial, Helvetica, sans-serif'> <br><br>Nos coachs sportifs au service des entreprises comme des particuliers.</font><br><br><br><font size=+3 face='Arial, Helvetica, sans-serif'>*****************************************************</font><br><br><br><font size=+1 face='Arial, Helvetica, sans-serif' color=green>Merci de votre contribution et à très bientot!</font><p></div><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>";
$validation=1;
}

}

}

if($validation==1) {
$mail="VOUS
Vous etes : $sexe
Votre age : $age
Seriez-vous seduit(e) par la mise en place de seances de sport sur votre site de travail? :$interet
A quel moment de la journee prefereriez-vous les seances? : $moment
Combien de seances hebdomadaires vous conviendraient le mieux? : $seances
Quels jours de preference? : $lundi $mardi $mercredi $jeudi $vendredi $nimportedi
Type de sport? $sportype0 $sportype1 $sportype2 $sportype3 $sportype4 $sportype5
Prefereriez vous que le materiel soit fourni ou amener le votre ? : $materiel
Quel budget maximum annuel seriez-vous pret(e) a investir dans ces seances ? : $budget";
}


?>


Et voici le code html comme je l'ai modifié :

Citation :
<font face='Arial, Helvetica, sans-serif'>Seriez-vous séduit(e) par
la mise en place de séances de sport et/ou de décontraction sur votre site de travail?</font><br>
<font face='Times New Roman, Times, serif'>
<input type='radio' name='seduit' value='oui'
<?php if($interet=='oui') echo " checked";?>
>
Oui.
<input type="checkbox" name="interet" onchange="bascule(this);" value='non'/>
<?php if($interet=='non') echo " checked";?>
>
Non.</font><br><br>


Merci de vos indices. :) 
a c 145 L Programmation
15 Novembre 2006 14:40:21

ben, une fonction javascript n'est pas une fonction php.
15 Novembre 2006 15:37:11

Est-ce a dire que mon probleme ne peut se résoudre en PHP? :( 
a c 145 L Programmation
15 Novembre 2006 15:38:19

non.
PHP s'execute au niveau serveur, or ce que tu demandes doit être fait au niveau client, donc en javascript.
15 Novembre 2006 15:50:05

En ce cas, m'est-il possible de ne PAS PROCÉDER aux vérification des champs avant l'envoi du formulaire.

Mon probleme vient du fait que les personnes répondant NON à la 1ere question doivent, dans le cas actuel, obligatoirement répondre à TOUTES les questions, même si elles ne sont pas interessées. Ce qui donne des résultats plutot farfelus.

Merci beaucoup de vos conseils. :) 
15 Novembre 2006 16:05:30

ecris ta fonction bascule entre balise <script></script> comme tu écris du HTML.

EDIT: checked est un attribut, donc:
<input type="checkbox" checked="checked"/>

et je comprends pas bien pour repondre a la question ...seduit... tu mets qu'un bouton radio?
15 Novembre 2006 17:35:25

La question initiale est : seriez vous séduit par des cours de sport?

Là deux réponse possibles : soit OUI, et dans ce cas il faut continuer le questionnaire, soit non, et alors le reste du questionnaire passe en "grisé", à l'exception du bouton "valider le questionnaire".

Coca 25, dans la proposition que tu fais, il faut nécessairement du java? non?
15 Novembre 2006 17:47:37

donc c'est un traitement qui se fait au niveau du client, donc en javascript (ou alors recharger la page)
javascript n'est pas du java, il te faut rien du tout, c'est au niveau du browser qu'utilise l'utilisateur de ton site que ca se fait.

moi j'ai rien proposé :) , j'ai juste corrigé l'emplacement du checked et de la fonction bascule.
crazycat t'avait deja propose le bon choix.

documentes toi sur le javascript, au hasard regarde ce lien:
http://www.aidoforum.com/tutoriaux-142-griser-un-bouton...
(le premier sur google avec "griser formulaire")
15 Novembre 2006 19:40:41

le javascript s'insere hors des balise <?php ?> ou bien tu l'insere avec des echo.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS