Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2011, 11h14   #1
Invité de passage
 
Inscription : décembre 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 12
Points : 3
Points : 3
Par défaut Formulaire : champs à affichage conditionnel

Bonjour,
Dans un formulaire destiné à ajouter des informations dans une base MySQL, j'ai plusieurs champs qui doivent être présentés de façon conditionnelle.
Voilà le début de mon formulaire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
	<form name="situationRcPro" method="post" action="index.php?page=assuRcpro">
	<table border="1" width="98%" summary="situation actuelle et ant&eacute;c&eacute;dents">
		<tr>
			<td colspan="2">Avez-vous souscrit ?
				&nbsp;Oui&nbsp;&nbsp;<input type="radio" name="an0on" value="oui" checked="checked" tabindex="1">
				&nbsp;Non&nbsp;&nbsp;<input type="radio" name="an0on" value="non"  tabindex="2">
			</td>
		</tr>
		<tr>
			<td width="25%">Si non, pourquoi ?</td>
			<td>
				<textarea name="an0quoi" id="Raison Non" title="Saisir votre r&eacute;ponse" cols="50" rows="2" tabindex="3"><?php echo htmlspecialchars($an0quoi); ?></textarea>
			</td>
		</tr>
		<tr>
		  <td align="center">
		  		<input type="submit" value="Imprimer le formulaire" tabindex="18"/>
			</td>
			<td align="center">
		  		<input type="submit" value="Envoyer le formulaire" tabindex="19"/>
			</td>
		</tr>
	</table>
	</form>
Comment faire pour que la zone de saisie de texte "an0quoi" ne soit présentée que si le bouton "an0on" est coché à NON ?
Merci de votre aide !
plorton est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h22   #2
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 5 129
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 5 129
Points : 7 260
Points : 7 260
Bonjour

Code :
1
2
3
<?php if(isset($_POST["an0on"]) && ($_POST["an0on"]=="non")) {  
   // la case non a été coché
}?>
A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h23   #3
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Développeur informatique
Inscription : août 2007
Messages : 732
Détails du profil
Informations personnelles :
Nom : Homme cédric
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 732
Points : 1 562
Points : 1 562
Envoyer un message via Skype™ à Golgotha
Une façon de le faire :

Avec la bibliothèque jQuery, faire un .hide(); ou .show() sur le clique du bouton "an0on"

Faisable aussi en javascript pure je pense avec le hidden true ou false.
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Venez participez au deuxième defi Web !
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h30   #4
Membre éprouvé
 
Avatar de Dendrite
 
Femme Sylvie VAUTHIER
Développeuse Web
Inscription : juin 2008
Messages : 450
Détails du profil
Informations personnelles :
Nom : Femme Sylvie VAUTHIER
Âge : 46
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeuse Web
Secteur : Enseignement

Informations forums :
Inscription : juin 2008
Messages : 450
Points : 401
Points : 401
Bonjour Plorton.
Je suppose effectivement que tu voudrais que ta page soit dynamique, au sens où ton champ texte apparaitraît dès que l'on coche tel bouton radio ?

Typiquement, ce genre d'événement exige un langage côté client web et pas PHP (qui est un langage côté serveur), car il n'attend pas que la page soit rechargée pour la modifier. Ce n'est donc pas en PHP que tu pourras faire ce genre de page dynamique, mais en javascript.

Si tu débutes en javascript, je crois que la solution 2 de Golgotha est la plus simple, bien que pas très élégante. Tu mets une div sur la page que tu caches ou non selon la coche.
__________________
C'est moi qui l'ai fait !
PHP : Le tutoriel pour grands débutants pressés
Dendrite est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2011, 11h37   #5
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 993
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 993
Points : 5 786
Points : 5 786
Envoyer un message via Skype™ à jreaux62
Bonjour,
voici un bout de code en javascript (à adapter) :

Code :
1
2
3
4
5
6
7
8
9
10
11
	<script type="text/javascript"><!--
	function affichebox() {
		var idNon = document.getElementById('idan0onNon');
		if(idNon.checked) { // on affiche
			document.getElementById('idbox_a_afficher').style.display = "block";
		} else { // on masque
			document.getElementById('idbox_a_afficher').style.display = "none";
		};
	}
	//-->
	</script>
Code :
1
2
	<input type="radio" value="oui" name="an0on" id="idan0onOui" onclick="affichebox();"<?php if($an0on=='oui') { echo ' checked="checked"'; } ?> /><label for="idan0onOui">Oui </label>
	<input type="radio" value="non" name="an0on" id="idan0onNon" onclick="affichebox();"<?php if($an0on=='non') { echo ' checked="checked"'; } ?> /><label for="idan0onNon">Non </label>
Code :
1
2
3
	<div id="idbox_a_afficher" style="display:<?php if($an0on=='non') { echo 'block'; } else { echo 'none'; } ?>">
		<!-- ICI : le contenu à afficher/masquer -->
	</div>
Dans ton cas (et bien que je ne cautionne pas l'utilisation d'une <table> pour la mise en page du formulaire), tu peux l'appliquer sur le <tr> à afficher/masquer :
Code :
1
2
3
4
5
6
		<tr id="idbox_a_afficher" style="display:<?php if($an0on=='non') { echo 'block'; } else { echo 'none'; } ?>">
			<td width="25%">Si non, pourquoi ?</td>
			<td>
				<textarea name="an0quoi" id="Raison Non" title="Saisir votre r&eacute;ponse" cols="50" rows="2" tabindex="3"><?php echo htmlspecialchars($an0quoi); ?></textarea>
			</td>
		</tr>
[Edit] Oh oh ! Sylvie VAUTHIER est dans la place !
Merci et bravo pour ton tuto -> PHP : Le tutoriel pour grands débutants pressés
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 30/08/2011, 12h10   #6
Invité de passage
 
Inscription : décembre 2010
Messages : 12
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 12
Points : 3
Points : 3
Merci de vos propositions de solution ...
Je teste cet après-midi et je vous tiens informé(e)s.
plorton est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h55.


 
 
 
 
Partenaires

Hébergement Web