Modifier liens avec à onchange [RESOLU]

Modifier liens avec à onchange [RESOLU] - HTML/CSS - Programmation

Marsh Posté le 15-05-2006 à 10:22:28    

bonjour,
j'aimerai recuperer la valeur d'une variable grace à l'instruction onchange: voila le code.
Le probleme c'est que $b reste undefined...  
Tout ca pour pouvoir changer un lien...
Il y a (outre les erreurs) surement plus simple et fonctionnel...
Merci!

Code :
  1. <head>
  2. <SCRIPT LANGUAGE="JavaScript">
  3. var $b;
  4. function savoir(){
  5. var indice_selectionne=document.deroul.go.selectedIndex;
  6. var chango=document.deroul.go.options[indice_selectionne].value;switch (chango){
  7. case "a1":$b=1;break;
  8. case "a2":$b=2;break;
  9. defaut:$b=11;break;
  10. }
  11. }
  12. function aff(){
  13. var a="<form name='deroul'><select name='go' onchange='savoir()'>";
  14. var b="<option value='a1'>choix1</option><option value='a2'>choix2</option></select></form><a href='exemple"+$b+".php'>exemple</a>";
  15. document.write(a);
  16. document.write(b);
  17. }
  18. </SCRIPT>
  19. </head>
  20. <body>
  21. <SCRIPT language="JavaScript">
  22. aff();
  23. </SCRIPT>
  24. </body>


Message édité par fredderf le 15-05-2006 à 19:20:08
Reply

Marsh Posté le 15-05-2006 à 10:22:28   

Reply

Marsh Posté le 15-05-2006 à 10:30:04    

Bravo pour les balises "Gras"...

Reply

Marsh Posté le 15-05-2006 à 11:36:25    

alors dans l'ordre:

  • nommer des variables $X en js, ça suxxe. ça marche mais c'est le meilleur moyen de confondre variables js et php ...
  • c'est tout nul ce que tu essayes de faire ;), normalement tu as pas besoin de js!!!

En gros tu fais ton formulaire tout en html et c'est en php que tu testes la valeur du select!

Code :
  1. <body>
  2.   ...
  3. <form name='deroul' action="exemple.php" method="post">
  4.    <select name='go'>
  5.      <option value='a1'>choix1</option>
  6.      <option value='a2'>choix2</option>
  7.    </select>
  8.    <input type="submit" value="exemple"/>
  9. </form>
  10. ...
  11. </body>


et dans ton php

Code :
  1. ...
  2. switch($_POST['go']){
  3.   case 'a1':
  4.     // tu affiches ta page exemple1.php ou tu fais un header avec location = exemple1.php
  5.    break;
  6.   case 'a2':
  7.     // tu affiches ta page exemple2.php ou tu fais un header avec location = exemple2.php
  8.    break;
  9.    default:
  10.     // tu affiches ta page exemple11.php ou tu fais un header avec location = exemple11.php
  11. }


 
edit: Ah et les balises "gras" dans du code ça veut rien dire ;)


Message édité par anapajari le 15-05-2006 à 11:36:57
Reply

Marsh Posté le 15-05-2006 à 17:59:28    

Merci, en fait j'y arrivais en php...
En fait, je cherche juste à changer l'adresse d'un lien:
j'ai ma page  et dedans j'ai un lien qui pointe vers exemple1.php, suivant le choix dans menu deroulant, il doit pointer ver exemple2.php.
Mais c'etait pour alleger le travail du serveur que je voulais le faire en js.
Je prends note des $...
Et je reste persuadé que c'est tout nul...
Merci

Reply

Marsh Posté le 15-05-2006 à 18:04:49    

<select onchange="document.location.href=this.value">
<option value="page1.php">page1</option>
<option value="page2.php">page2</option>
</select>
 

Reply

Marsh Posté le 15-05-2006 à 18:12:31    

Qui a piqué le compte de gatsu et lui fait poster des solutions en js quand c'est inutile :o

Reply

Marsh Posté le 15-05-2006 à 18:22:20    

Ce serait plutot un truc dans ce genre (mais ca ne marche pas):
<select onchange="document.blabla.href=this.value">
<option value="page1.php">page1</option>
<option value="page2.php">page2</option>
</select>  
<a name="blabla" href="page1.php"> Mon lien </a>
Mais je pense que je vais laisser les serveurs travailler et le coder en php...
Merci

Reply

Marsh Posté le 15-05-2006 à 18:28:18    

<select onchange="document.getElementById("blabla" ).href=this.value">
<option value="page1.php">page1</option>
<option value="page2.php">page2</option>
</select>  
<a id="blabla" href="page1.php"> Mon lien </a>  
 
C'est moi qui moi même qui me suis piqué mon compte pour repondre à une question à la con.
J'ai appris qu'en travaillant, même si toi (moi en l'occurence dans mon cas) tu veux toujours faire propre, ya toujours un imbécile pour faire de la merde, et qu'il faut suivre la merde de l'imbécile :o

Message cité 1 fois
Message édité par gatsu35 le 15-05-2006 à 18:28:43
Reply

Marsh Posté le 15-05-2006 à 18:40:04    

J'ai pas trop compris la fin du message... et le code n'a pas l'air de marcher. En tout cas merci.
PS: Je debute en js comme vouv en vous doutez, mais "faire propre" est ce faire "en php"?

Reply

Marsh Posté le 15-05-2006 à 19:09:15    

pourquoi le code ne fonctionne pas :o ? tu as fait mis un onclick sur le lien :  
<a href="" onclick="alert(this.href)">Mon lien</a>
 
normalement mon code est obligé de fonctionner

Reply

Marsh Posté le 15-05-2006 à 19:09:15   

Reply

Marsh Posté le 15-05-2006 à 19:09:37    

le reste du message est destiné à anapajari

Reply

Marsh Posté le 15-05-2006 à 19:10:40    

colle le code que tu as mis dans ta page :o

Reply

Marsh Posté le 15-05-2006 à 19:18:54    

Voila un script qui marche: merci...

Code :
  1. <head>
  2. <script>
  3. function dede()
  4. {
  5. var indice_selectionne=document.deroul.go.selectedIndex;
  6. var chango=document.deroul.go.options[indice_selectionne].value;
  7. switch (chango){
  8. case "aj":$b="page1.php";break;
  9. case "sa":$b="page2.php";break;
  10. }
  11. document.getElementById("blabla" ).href=$b;
  12. a=document.getElementById("blabla" ).href;
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. <form name="deroul">
  18. <select name ="go" onchange="dede()">
  19. <option value="aj">page1</option>
  20. <option value="sa">page2</option>
  21. </select></form> 
  22. <a id="blabla" href="page0.php"> Mon lien </a> 
  23. </body>
  24. </html>


Reply

Marsh Posté le 15-05-2006 à 19:31:17    

tu mélanges PHP et javascript :o
 
et je crois pas que c'est ce que tu cherchais à faire dès le début :o
et le script que je t'ai filé il est beaucoup moins bloat :o
 
anapajari, sauve moi :o

Reply

Marsh Posté le 15-05-2006 à 21:42:38    

Je ne les melange pas(surement les styles): les liens .php auraient tres bien pu etre des .html.  
C'est ce que je voulais faire depuis le debut(pas mal d'heures).
Le script que tu m'as filé m'a bien aidé, d'ailleurs si je l'avais eu dés le départ ca m'aurait bien aidé.
En fait suivant le choix, il faut changer al totalité des liens de la page. Il ya surment plus court comme script , mais mon vocab en js est tres limité.
Encore merci

Reply

Marsh Posté le 15-05-2006 à 21:53:15    

PS: le code qui devrait fonctionner:
<html>
<body>
 
<select onchange="document.getElementById("blabla" ).href=this.value">
<option value="page1.php">page1</option>
<option value="page2.php">page2</option>
</select>  
<a id="blabla" href="page1.php"> Mon lien </a>  
</body>  
</html>
 
ce qui ne marche pas: que je choisisse 1 ou 2, il lance tjs page1.php...
 
C'e st vrai que ca devrait marcher, et c'est sur que c'est plus beau...

Reply

Marsh Posté le 16-05-2006 à 09:39:50    

gatsu35 a écrit :

C'est moi qui moi même qui me suis piqué mon compte pour repondre à une question à la con.
J'ai appris qu'en travaillant, même si toi (moi en l'occurence dans mon cas) tu veux toujours faire propre, ya toujours un imbécile pour faire de la merde, et qu'il faut suivre la merde de l'imbécile :o


ça va mieux hein :o
 

gatsu35 a écrit :

et je crois pas que c'est ce que tu cherchais à faire dès le début :o
et le script que je t'ai filé il est beaucoup moins bloat :o
anapajari, sauve moi :o

Je crois que j'ai enfin compris ce qu'il cherchait a faire, je mets l'explication plus bas ;)
 

gatsu35 a écrit :

tu mélanges PHP et javascript :o


fredderf a écrit :

Je ne les melange pas(surement les styles)

Si si tu melanges ;)
 
Bref ton code marche pas et c'est normal!!! Si tu lances la console js sous FF tu as une belle erreur  

Citation :

Erreur  : syntax error
Fichier source : pouet.html Ligne : 1, Colonne : 23
Code source   : document.getElementById(


Et si tu regardes bien tu te rends compte que tu as des conflits de double-quotes(" ), mets des simples(') à l'intérieur de ton onChange et tout ira bien.
 

Reply

Marsh Posté le 16-05-2006 à 15:40:53    

Heureusement qu'il y en a qui savent interpréter.
Je peux editer "doublement resolu"!
Sauf que mon code maintenant à l'air vraiment pourri...
Merci!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed