Pb de faire disparaitre un sous form en cochant une case [Résolu]

Signaler
Messages postés
212
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
8 avril 2007
-
Messages postés
212
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
8 avril 2007
-
bonjour tout;

j'ai fais un script qui fait disparaitre des zones de formulaire en cochant une case, le probleme c'est que ça me cache pas l'intitulé de la zone, par exemple NOM: , donc j'ai pensé à creer un sous form que je voudrai faire disparaitre de la meme façon mais cette fois ci tout le sous form:

function GereControle(Controleur, Controle, Masquer) {
var objControleur = document.getElementById(Controleur);
var objControle = document.getElementById(Controle);

if (Masquer=='1'){

objControle.style.visibility=(objControleur.checked==true)?'hidden':'visible';

}

}

et voila l'appel de la fonction dans mon form principale:

casecaches est l'id de mon sous form;

une aider esl la bienvenue, Merci

13 réponses

Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
- un div avec un id unique pour chaque td
- une modification de la propriété display de chaque div dans la fonction BasculeZone()
Messages postés
212
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
8 avril 2007

ça marche, mais je trouve que c'est peu lourd, moi qui voulais faire ca en javascript je pensais que c'etait mieu que php mais NON avec php, je test si le checkbox n'est pas coché if (!isset($_POST['checkbox'])){

toutes les zones

sinon

}

je continue, c'est plus simple non?
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
Mets tout dans un div et fais jouer, par l'evenement onClick, la propriete display entre 'none'/'block' pour masquer/afficher le groupe :


Nom :



<script language='javascript'>
function BasculeZone() {

var d = document.getElementById('Zone');
d.style.display d.style.display 'block' ? 'none' : block';

}
</script>
Messages postés
212
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
8 avril 2007

j'ai essayé ce ci:

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function BasculeZone() {

var d = document.getElementById('Zone'); d.style.display (document.getElementById(idext).checked true) ? 'none' : block';

}
</script>
</head>

Nom :

Exterieur:

</html>
j'ai juste remplacé ton test car je teste le checkbox si il est coché ou pas?

mai ca ne marche pas???
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
et avec document.getElementById('idext') au lieu de document.getElementById(idext) ?
Messages postés
212
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
8 avril 2007

bon la ca marche nikel avec ce script:

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function BasculeZone() {

var d = document.getElementById('Zone'); d.style.display (document.getElementById('idext').checked true) ? 'none' : 'block';

}
</script>
</head>

<form name="toto">
Exterieur:

----,
Nom:
</td>

----

Nom :
Prenom :

</form>

</html>

mais il y a un petit probleme, c'est qu'il faut que tout les elements que je veux gerer (cacher/aficher) soient avec le div dans la meme cellule de mon tableau!! quand je mets les element dans des lignes et/ou des colones differentes de mon tableau ca bug??
Messages postés
212
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
8 avril 2007

t'es encore là; je ne voi pas dutout pour quoi le div ne marche pas dans les differentes cellules?
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
montres le code que tu veux faire executer je ne comprend pas
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
je crois comprendre ça : cette astuce ne marche que pour des div/span simples ou encadrés dans un td.
Si tu veux que ta fonction bascule plusieurs td.
1) tu les balises tous avec un div nommé différement
<tr><td>
...
</td></tr>
<tr><td>
...
</td></tr>
2) tu modifie BasculeZone() :
var Style (document.getElementById('idext').checked true) ? 'none' : 'block';
document.getElementById('Zone1').style.display document.getElementById('Zone2').style.display Style;
Messages postés
212
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
8 avril 2007

oui mais le probleme c'est moi je mets les intitulé dans une cellule comme ceu ci

<td width="200">Nom</td>

<td></td>

donc mon div je ne sais pas ou le mettre y'aura obligé un <td> apres le div, je devrai peut etre changer ma mise en page de mon form?
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
- un div avec un id unique pour chaque td
- une modification de la propriété display de chaque div dans la fonction BasculeZone()
Messages postés
694
Date d'inscription
lundi 5 décembre 2005
Statut
Membre
Dernière intervention
8 janvier 2014
12
php et javascript n'agissent pas au même moment.
Php est executé par la machine serveur avant d'envoyer le fichier html resultant
javascript est executé par la machine cliente sur le fichier html du client.
En php tu construit le fichier le fichier html
En javascript tu le modifies interactivement chez le client.
Messages postés
212
Date d'inscription
vendredi 17 mars 2006
Statut
Membre
Dernière intervention
8 avril 2007

je suis tout a fait d'accord avec toi, mais je ne vois pas la difference dans mon cas car la vitesse du traitement est la meme vue de mes yeux. peut etre par ce que j'utilise easy php pour l'instant, j'ai pas encore passer au serveur separé