comment faire un affichage un fonction d'une sélection ?

Tohru222
Invité n'ayant pas de compte PHPfrance

26 janv. 2009, 14:56

Bonjour,

j'ai un truc simple à faire, mais ce que je trouve sur internet ne correspond pas.

j'ai 2 boutons radios ( "F" et "M")

et je voudrais que sur la sélection de "F" une liste déroulante apparaisse, et sur la sélection de "M", la liste déroulante disparaisse.

j'utilise php. et d'parès ce que j'ai pu voir, dans ce cas je suis obligé d'utiliser javascipt !?

merci

ViPHP
AB
ViPHP | 5818 Messages

26 janv. 2009, 15:37

Pas nécessairement mais ce serait plus convivial pour le visiteur.

Sans javascript il faudra qu'il clique sur un des boutons radio puis qu'il soumette le formulaire et en fonction du résultat récupéré tu peux faire apparaître ou disparaître ta liste déroulante.

Avec javascript tu pourrais faire apparaître ou disparaître la liste dès le clic sur un bouton radio, sans avoir à soumettre le formulaire.

L'idéal étant de faire simultanément les deux avec le bouton de soumission qui n'apparaîtra que si js est désactivé. Ainsi le script pourrait fonctionner même si js est désactivé chez le visiteur.

Tohru222
Invité n'ayant pas de compte PHPfrance

26 janv. 2009, 16:50

heureusement que tu es là, tu m'a tellement aider pr mon site.

ok, j'v chercher avec du javascript voir ce qui se fait

merci

Tohru222
Invité n'ayant pas de compte PHPfrance

26 janv. 2009, 17:32

c bon j'ai trouvé. Mes 2 boutons radios btrQuest, rendent visible ou invisible le champs listeNote

Code : Tout sélectionner

<input type="radio" name="btrQuest" value="0" checked onClick="listeNote.style.visibility='visible'" >un avis <input type="radio" name="btrQuest" value="1" onClick="listeNote.style.visibility='hidden'>une question Note attribuée : <select name="listeNote" ...>
par contre, j'aimerai aussi rendre visible/invisible du texte . en l'occurence : "Note attribuée :" qui se trouve juste devant ma liste déroulante.
je ne vois pas comment faire....
faire un formulaire juste pr le texte et la liste déroulante que je rend visible et invisible ? mais ce formulaire serait dans le formulaire qui contient d'autres champs..... ça fait bizarre non?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 janv. 2009, 19:12

Non seulement ça ferait bizare mais surtout c'est pas utile :)

En fait, ta page html est déjà structurée comme un gros formulaire. Une balise <html> qui contient une balise <body>, qui contient diverses balises, tout comme ta balise <form> va contenir une balise <select> qui contiendra des balises <option> etc.

Toute ta page n'est qu'un gros tas d'objets que tu peux manipuler à l'aide de javascript et du "dom" le Document Object Model ...

bon... c'est bien joli tout ça, mais concrètement, ça veut dire quoi ?

et bien simplement que tu peux mettre ton texte et ton select à l'intérieur d'une autre balise, par exemple un paragraphe (<p>) ou autre conteneur (<div>, <span>, ...) lui donner un id unique et l'appeler grace à javascript :
<input type="radio" name="btrQuest" value="0" checked onClick="document.getElementById('note_attribuee').style.visibility='visible'" >un avis 
<input type="radio" name="btrQuest" value="1" onClick="document.getElementById('note_attribuee').style.visibility='hidden'">une question 

<span id="note_attribuee">Note attribuée : <select name="listeNote" ...> </span>
Ainsi, lorsque tu cliques sur ton bouton radio, javascript va chercher l'objet document (la page courrante), demande l'élément dont l'id est 'note_attribuee' et va changer son style pour modifier le paramétrage de visibilité :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Tohru222
Invité n'ayant pas de compte PHPfrance

26 janv. 2009, 22:06

Merci ça marche impec !!

j'étais pas loin, mais là c quand même plus soft !!!

merci encore !!