le 19 Juin participez à Drupagora

Choisir son formulaire php

Eléphant du PHP | 620 Messages

01 Oct 2012, 22:13

Bonsoir à tous,
Je cherche à faire 2 formulaire différents mais je souhaiterai qu'ils soient affiché sur une page unique via un bouton radio par exemple qui permet de choisir le formulaire 1 ou le formulaire 2...

Quelqu'un a une idée de comment faire?

Merci bcp!

Eléphant du PHP | 702 Messages

02 Oct 2012, 09:07

Salut,

y'a rien de plus simple.

Moi j'aurais fait comme cela.

Avant toute chose j'aurais mis

des actions sur tes boutons, en effet tu souhaite afficher un formulaire ou un autre
selon le choix d'un bouton de type radio.

Du coup en javascript j'avais déjà fait la fonction suivante:
et comme tu veux que la fonction s'exécute sur le clic du bouton tu as la condition onclick

voici donc ce que j'ai [javascript]onclick="setVisibility('champs', 'block');setVisibility('champs2', 'none')"[/javascript]

ici nous avons deux chose la fonction setvisibility qui s'exécute deux fois, mais qui va changer l'affichage de deux éléments
ici donc sur le clic on affiche le div qui contient l'id 'champs' et on cache le div qui a l'id 'champs2'
avec block tu affiche avec none tu cache. Ici c'est bien important d'utiliser le display block et none car si tu fais un simple hidden
alors tes champs seront juste cachés mais existeront bien.

Donc sur l'autre bouton tu dois mettre la condition inverse [javascript]onclick="setVisibility('champs2', 'none');setVisibility('champs', 'block')"[/javascript]

car lorsque tu clic sur un bouton tu affiche le premier div tu cache l'autre mais si tu clic sur l'autre tu affiche l'autre et tu cache le premier

ensuite voici la fonction à mettre juste après les boutons radios:

[javascript]<script language="JavaScript">
function setVisibility(id, visibility) {
document.getElementById(id).style.display = visibility;
}
</script>[/javascript]


Puis il te reste plus qu'à créer tes deux div qui vont contenir tes formulaires:
dans les balises

<body>
[html]<div id="champs" style="display:none">
CONTENU DU FORMULAIRE
</div>

<div id="champs2" style="display:none">
CONTENU DU FORMULAIRE
</div>
[/html]
</body>

Ici tu constatera que d'entrée de jeu les deux champs sont en style Display none
ce qui est normal car c'est le javascript et l'action sur les boutons qui va les afficher
en fonction du bouton sur lequel tu appui.

Bien à toi.

SP.

Eléphant du PHP | 620 Messages

02 Oct 2012, 09:11

Je te remercie vraiment pour toutes ces explications!
C'est vraiment top!

Je vais regarder comment faire avec cette nouvelle fonction à mon actif, en tout cas elle a l'air vraiment simple et pratique à utiliser.

Merci.
Cordialement.