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

Eric Agrepe
Invité n'ayant pas de compte PHPfrance

21 janv. 2016, 12:35

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

ynx
Mammouth du PHP | 586 Messages

21 janv. 2016, 17:30

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

Mammouth du PHP | 881 Messages

22 janv. 2016, 02:19

« 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>
Soyez artisans de paix