Page 1 sur 1

Afficher un champ dans un formulaire en fonction de la valeur du choix d'un champ précédent (Liste ou bouton radio)

Posté : 21 janv. 2016, 12:35
par Eric Agrepe
Bonjour,
D'abord je précise que je suis très débutant.
J'essaie de réaliser un formulaire.
Je souhaiterai savoir comment faire pour afficher un champ en fonction de l'état d'un précédent.

Voici un extrait du code que j'ai préparé, mon formulaire s'affiche correctement: ( mais dans ce morceau de code je ne vois pas mes boutons radio ?)
Le control 'Assuj_tva' peut avoir un état Oui ou Non

<div class="control-group">
<div class="control-label"><?php echo $this->form->getLabel('asuj_tva'); ?></div>
<div class="controls"><?php echo $this->form->getInput('asuj_tva'); ?></div>
</div>
<div class="control-group">
<div class="control-label"><?php echo $this->form->getLabel('num_tva_intra'); ?></div>
<div class="controls"><?php echo $this->form->getInput('num_tva_intra'); ?></div>
</div>

Je souhaiterai afficher le champ num_tva_intra que quand le champ asuj_tva est Oui

Cordialement.
Eric

Re: Afficher un champ dans un formulaire en fonction de la valeur du choix d'un champ précédent (Liste ou bouton radio)

Posté : 21 janv. 2016, 17:30
par ynx
Salut,

Une solution assez simple serait d'utiliser un peu de javascript pour effectuer ce traitement, mais il serait plus facile de te guider si nous pouvions voir les balises input.
En effet ton extrait de code html contient du code php, c'est ce code php qui va être remplacé par les input html lors de l'affichage de la page. Pour nous montrer uniquement le code html, tu peux afficher ta page dans un navigateur et récupérer le code source html de la page (clic droit -> Code source de la page).

Peux tu stp nous montrer le même extrait de code mais en version html (depuis le code source de la page affichée dans le navigateur) ?

Bonne journée

Re: Afficher un champ dans un formulaire en fonction de la valeur du choix d'un champ précédent (Liste ou bouton radio)

Posté : 22 janv. 2016, 02:19
par Patriboom
« Je souhaiterai afficher le champ num_tva_intra que quand le champ asuj_tva est Oui »

Ce serait en javascript le plus simple:
Tu affiches le boutons de toutes façons, mais tu caches ou rends visible la div qui le contient selon le résultat obtenu dans le boutons précédant.

<div class="controls" onclick="MaFonction();"><?php echo $this->form->getInput('asuj_tva'); ?></div>

<div class="control-group" style="visibility: hidden;" id="AfficheTvaOuNon">
<div class="control-label"><?php echo $this->form->getLabel('num_tva_intra'); ?></div>
<div class="controls"><?php echo $this->form->getInput('num_tva_intra'); ?></div>
</div>

<script>
function MaFonction() {
var etat = 'hidden';
if (document.getElementById('asuj_tva').value == 'Oui') { etat = 'visible'; }
document.getElementById('AfficheTvaOuNon').style.visibility = etat;
}
</script>