Prob avec javascript et php

Fermé
moonwalker007 - 9 sept. 2009 à 15:26
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 11 sept. 2009 à 11:30
Bonjour,

Je cherche à afficher un bout de formulaire différent suivant la sélection dans un menu déroulant au début de ce même formulaire (je sais pas si je suis clair ;-) )

Merci d'avance à tous
A voir également:

12 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 sept. 2009 à 15:37
Bonjour,

C'est clair (du moins pour moi), le mieux encore aurait été de donné ton code (du moins ce que tu as fait pour le moment puisque je me doute que ça ne fonctionne pas ^^)

Le truc c'est de jouer avec les éléments de ta page et leur propriété de visibilité via javascript.

En gros il faut que tu:
- englobe les zone concernées par des balises <div id="zoneXXX"></div>
- définisse une fonction javascript qui cache une zone, ou la montre selon un paramètre donné

Ceci te permettra de pouvoir cacher / montrer tes zones.
Ensuite viendra la gestion fonctionnelle, c'est à dire que tu va surement vouloir cacher l'ancienne zone visible lorsqu'une nouvelle est sélectionner, avant de rendre visible la nouvelle zone en question.
Pour ce faire, tu pourra gérer une variable javascript globale à ta page, enregistrant l'identifiant de la dernière zone ainsi modifiée et ainsi pouvoir y faire appel avec ta fonction javascript pour la modifier à nouveau lors d'une nouvelle sélection. (si tu me suis)

Comme donc par développer la chose de toi-même, et si tu rencontre des difficultés, poste ton code existant avec ton problème technique sur le sujet.
0
moonwalker007
9 sept. 2009 à 15:47
Merci de me répondre si vite Voici mon code
<tr><td>Type :</td><td><select name="type_animal" size="10">
                       	<option value="Chien"> Chien</option>
                       	<option value="Chat" selected> Chat</option>
                       </select></td></tr>

Je voudrais si c'est chien qui est selectionné ca afficheça à la suite :

<tr><td>Nom chien :</td><td><input type="text" name="nom_bete" class="input"></td></tr>
<tr><td>Tatouage VCN:</td><td><input type="text" name="tatouagevcn" class="input"></td></tr>
<tr><td>Eleveur :</td><td><input type="text" name="eleveur" class="input"></td></tr>
<tr><td>Concours canin :</td><td><input type="text" name="canin" class="input"></td></tr>

Par contre si c'est chat et c'est ce qui est selectionné par défaut :

<tr><td>Nom chat :</td><td><input type="text" name="nom_bete" class="input"></td></tr>
<tr><td>Tatouage VPN:</td><td><input type="text" name="tatouagevpn" class="input"></td></tr>
<tr><td>Eleveur :</td><td><input type="text" name="eleveur" class="input"></td></tr>
<tr><td>Concours félin:</td><td><input type="text" name="félin" class="input"></td></tr>


Voilà

ça vous suffit-il?
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 sept. 2009 à 15:52
Oui cela me suffit, et je saurait tout à fait faire ce que tu souhaites.
Seulement ici c'est un forum d'entraide, et l'entraide à mon sens signifie un travail dans les deux sens, je ne suis pas là pour coder à la place des autres sur demande où à mon bon vouloir :)

Tu comprendra que j'attends de voir ce que toi tu mets en place pour résoudre ton problème via mes conseils, plutôt que te donner en 5 minutes le code complet que tu attends (sans vouloir te vexer).

De 1, ça me permet de faire autre chose en attendant ton prochain post (comme aider ailleurs)
De 2, tu apprendra toujours mieux en tentant de faire par toi même, puis d'etre corrigé si besoin est, que de recopier un truc tout fait.
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
9 sept. 2009 à 16:03
Bonjour,

Je me permet d'intervenir pour te donner quelques élements d'aide supplémentaires.
<script type="text/javascript">
  function affiche(val)
 { 
     document.getElementById("afficher1").style.display="none";
     document.getElementById("afficher2").style.display="none";
     if(val == "valeur1"){
     document.getElementById("afficher1").style.display="inline";
     }
     if(val == "valeur2"){
     document.getElementById("afficher2").style.display="inline";
     }

 }
</script>


<select name="fonction" onchange="affiche(this.value);">
	<option value="valeur1">valeur1</option >
	<option value="valeur2">valeur2</option >
</select>

<div id="afficher1" style="display:none;">

Contenu a afficher si la liste est sur valeur1

</div>

<div id="afficher2" style="display:none;">

Contenu a afficher si la liste est sur valeur2

</div>


A adapter bien évidement.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
moonwalker007
9 sept. 2009 à 16:05
Merci je n'y connait tellement rien que je savais pas vraiment par où commencer.
Merci beaucoup de faire avancer le schmilblick

;-)
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
9 sept. 2009 à 16:12
Des erreurs dues à du copier / coller du code (j'imagine, un bon développeur est avant tout feignant :D) se sont glissée dans le code donné, sauras-tu les trouver ? :)

N'oubli pas de remettre ton code corrigé dans son intégralité (du moins ce qui concerne ton problème de départ) lorsque ton application fonctionnera. (c'est mieux pour les personnes qui relise ta discussion d'avoir un résumé de la solution)
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
9 sept. 2009 à 16:14
Je l'ai fait sur le tas.

Et corriger avant que tu finisses de poster ^^

Mais j'aurais en effet pu les laisser.
0
moonwalker007
10 sept. 2009 à 17:32
Bonjour, à tous,

Après maintes essais...je n'y arrive pas voilà comment ça se présente.

Merci de votre aide

<script type="text/javascript">
  function affiche(val)
 { 
     document.getElementById("afficher1").style.display="none";
     document.getElementById("afficher2").style.display="none";
     if(val == "Chien"){
     document.getElementById("afficher1").style.display="inline";
     }
     if(val == "Chat"){
     document.getElementById("afficher2").style.display="inline";
     }

 }
</script>


<tr><td>Type :</td><td><select name="type_animal" size="10" onchange="affiche(this.value);">
                       	<option value="Chien"> Chien</option>
                       	<option value="Chat" selected> Chat</option>
                       </select></td></tr>


<div id="afficher1" style="display:none;">
<tr><td>Nom chien :</td><td><input type="text" name="nom_bete" class="input"></td></tr>
<tr><td>Tatouage VCN:</td><td><input type="text" name="tatouagevcn" class="input"></td></tr>
<tr><td>Eleveur :</td><td><input type="text" name="eleveur" class="input"></td></tr>
<tr><td>Concours canin :</td><td><input type="text" name="canin" class="input"></td></tr>
</div>
<div id="afficher2" style="display:none;">
<tr><td>Nom chat :</td><td><input type="text" name="nom_bete" class="input"></td></tr>
<tr><td>Tatouage VPN:</td><td><input type="text" name="tatouagevpn" class="input"></td></tr>
<tr><td>Eleveur :</td><td><input type="text" name="eleveur" class="input"></td></tr>
<tr><td>Concours félin:</td><td><input type="text" name="félin" class="input"></td></tr>
</div>
0
CaPiT Messages postés 609 Date d'inscription lundi 7 janvier 2008 Statut Membre Dernière intervention 21 avril 2010 51
11 sept. 2009 à 08:56
Bonjour,

Je viens de tester le code chez moi, il marche parfaitement (je n'ai rien changé du tout).

Tu as testé uniquement ça ou tu as d'autres truc dans ta page?
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
11 sept. 2009 à 10:29
Je me permets d'ajouter que si tu veux avoir une rubrique par défaut dès le début (sans pour autant devoir modifier la valeur de la select box, il te faut appeler la fonction javascript après avoir mis en place ta page, comme ceci (à mettre en bas de page donc, ou du moins après les éléments HTML utilisé par ta fonction) :
<script language="javascript">
affiche("chien");
</script>


Ainsi ta section "chien" sera visible par défaut lorsque tu arrive sur ta page.
0
moonwalker007
11 sept. 2009 à 11:13
Bonjour à tous les deux,

J'ai d'autres trucs par contre le script de la fonction "affiche" doit il se trouver dans le head?

Le fait d'être sous firefox change t'il quelque chose?

Parce que ca ne marche toujours pas ca me l'affiche quand même.

Merci
0
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
11 sept. 2009 à 11:30
Oui tu peux mettre le code de la fonction javascript dans ton HEAD, ça ne pose pas de problème.
Etre sous firefox ne devrait rien changer, le code est compatible IE/FF.

Peux-tu nous donner le code entier de ta page éventuellement ?

Sinon, qu'est ce qui ne marche pas exactement ?
Puisque tu es sous FF, je te propose de regarder dans Outils->console d'erreur pour voir les erreurs éventuelles sur ta page (s'il y en as réellement), et si oui, nous donner le libellé exacte de cette erreur.
0