Résolu JAVASCRIPT form+select

Solutions (19)
Tags :
  • Javascript
  • Java
  • Select
  • Programmation
|
Hello all :) 

j'ai une fonction java qui permet de modifier le select d'une liste:

le problème est que le nom de mon select est option[395]
et apparemment c'est ces crochets qui bloquent la fonction...


alors comment faire passer cette name dans la fonction, sachant que je ne peut pas modifier le form...


function changeSelect(x) {

document.getElementById('product').option[395].selectedIndex = x-1;
}


voila ma liste :

<form id="product" method="post" action="index.php?">
<select name="option[395]">
<option value="1362">34T</option>
<option value="1365">43T</option>
</select>
</form>

mon lien:

<a href="javascript:changeSelect(2)">43T</a>

Contenus similaires
Meilleure solution
partage
|
Allé hop

Voici la solution, avec des explications, c'est toujours mieux.

function changeSelect(x) {

document.getElementById('product').option[395].selectedIndex = x-1;
}

Ca ne marche pas, en effet, il prend "option[395]" comme un tableau, une variable en javascript, ce n'est pas top n'est il pas?

j'ai eu comme première idée de créer un tableau possédant la valeur "option[395]", mais là non plus ça ne marche pas.

Et ensuite, tilt.

Remplace
document.getElementById('product').option[395].selectedIndex = x-1;
par ceci:
document.forms['product'].elements['option[365]'].selectedIndex = x-1;

De cette manière, tu n'as plus aucun soucis de nommage.
Voilà.

  1. <html>
  2. <script language="javascript">
  3. function changeSelect(x) {
  4.  
  5. document.forms['product'].elements['option[365]'].selectedIndex = x-1;
  6. }
  7.  
  8. </script>
  9. <form id="product" method="post" action="index.php?">
  10. <select name="option[365]">
  11. <option value="1362">34T</option>
  12. <option value="1365">43T</option>
  13. </select>
  14. </form>
  15. <a href="javascript:changeSelect(2)">43T</a>
  16. </html>

Voici l'exemple test que j'ai effectué.
  • Commenter cette solution |
Score
0
òh
òi
|
j'ai trouvé la solution, je post :) 

  1. function gup(name)
  2. {
  3. name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  4. var regexS = "[\\?&]"+name+"=([^&#]*)";
  5. var regex = new RegExp(regexS);
  6. var results = regex.exec(window.location.href);
  7. if(results == null)
  8. return "";
  9. else
  10. return results[1];
  11. }
  12. var sele = gup('option');
  13.  
  14. if(!sele)
  15. window.onload=changeSelect(1);
  16. else
  17. window.onload=changeSelect(sele);
  • Commenter cette réponse |
Score
0
òh
òi
|
Malheureusement, pour lancer du javascript lors du chargement d'une nouvelle fenêtre, je ne connais que onload.
Pareillement pour la popup, quand tu la lances, c'est au chargement, onload, que tu executes ta fonctions.
  • Commenter cette réponse |
Score
0
òh
òi
|
malheureusement je ne peut pas mettre le <body onload=changeselect()> ... ya pas d'autres moyens ? j'ai vu qu'il y avai des fonction java qui permettent d'ouvire un popup et d'y exécuter une function (dans le popup).

je penssai donc au debu faire une fonction du genre:

window.location.href='index.php';
windows.mafunction(x);

mais je n'arrive pas a combiner les deux!

edit: j'ai trouver ca en substition:

window.onload=changeselect();



j'ai mit au dessu de ca :

var nom=new Array();
var valeur=new Array();

// On enlève le ?
param = window.location.search.slice(1,window.location.search.length);

// On sépare le paramètres....
// first[0] est de la forme param=valeur

first = param.split("&");

for(i=0;i<first.length;i++){
second = first.split("=");
nom = second[0];
valeur = second[1];
}


mais que dois-je mettre dans la () du changeselect() ??

dsl je suis nul en js...
  • Commenter cette réponse |
Score
0
òh
òi
|
ok jve voir ca :)  merci en tout cas
  • Commenter cette réponse |
Score
0
òh
òi
|
tu fais passer ta variable ton clic sur la page vers index.php?option=1 , 2 ou 3
sur ta page 2, tu fais un <body onload=changeselect()>
et dans le change select, au lieu d'utiliser X dans mes exemples, tu vas chercher la variable dans l'url
http://javascript.developpez.com/faq/?page=navig#RecupP...

Voilà je pense que tu as tout pour tout réussir :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
j'ai une autre page qui doit avoir des lien, lesquels redirigent vers la page qui contient la liste et la fonction qui permet de changer la liste:

la page 1:

lien page2+selectione option2 de la liste page2
lien page2+selectione option3 de la liste page2
lien page2+selectione option4 de la liste page2
...

la page2: c'est celle qui contient ma liste
  • Commenter cette réponse |
Score
0
òh
òi
|
Re bonjour, bon, récapitulons.

Tu as ta variable, tu clic dessus, tu veux que ton select se change tout seul.
Ca c'est réglé.

Que veux tu faire ensuite, avec ton window location?
  • Commenter cette réponse |
Score
0
òh
òi
|
décidément, ca ne marche pas... qqn aurait une idée ?
  • Commenter cette réponse |
Score
0
òh
òi
|
MERCI :)  jve essayer de voir pour le submit...
  • Commenter cette réponse |
Score
0
òh
òi
|
  1. <html><head>
  2. <script language="javascript">
  3. function changeSelect(x) {
  4.  
  5. var lol = document.body.innerHTML.search('name="option');
  6. lol=lol;
  7. var fin_approx= lol+18;
  8.  
  9. var cut = document.body.innerHTML.substring(lol+6,fin_approx-1);
  10.  
  11. document.forms["product"].elements[cut].selectedIndex = x-1;
  12. }
  13.  
  14. </script>
  15.  
  16. <head/>
  17. <body>
  18.  
  19. <form id="product" method="post" action="index.php?">
  20. <select name="option[365]">
  21. <option value="1362">34T</option>
  22. <option value="1365">43T</option>
  23. </select>
  24. </form>
  25. <a href="javascript:changeSelect(2)">43T</a>
  26. </body>
  27. </html>


Ce code te permet de trouver le nom de l'option, et de te faire une sélection...

Pour ta redirection, le mieux est de passer par un "submit" non?
Comme un formulaire traditionnel?
  • Commenter cette réponse |
Score
0
òh
òi
|
ps: si mon lien est placé sur un autre page, je veut donc que le lien redirige vers la page (sur laquelle il y a la liste) puis exécute la fonction.

j'ai essaye :

<a href="javascript:changeSelect(2)" OnClick="window.location.href='index.php';">16x12</a>

ca ne marche pas:/
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par oneilus.
  • Commenter cette réponse |
Score
0
òh
òi
|
Il sagis d'un script commerce assez complexe, mais je viens de découvrir que le name change uniquement à chaque fois que j'édite, la page... donc je dirais que le problème est résolu !!

merci pour ton aide :) 
  • Commenter cette réponse |
Score
0
òh
òi
|
Y a t'il du php?
Par exemple, comment sont générés les noms?
Aurais tu la page complète (de code) à me fournir pour que je puisse voir?

J'ai une petite idée que je vais creuser d'ici là.
  • Commenter cette réponse |
Score
0
òh
òi
|
np :)  finis donc ton repas.
la name de mon select change aléatoirement, a peut prêt a chaque refresh de la page.

j'ai plusieurs options dans le select:

<option value="1362">34T</option>
<option value="1344">35T</option>
<option value="1566">36T</option>
<option value="1367">37T</option>
.....

la seul chose que je peut modifier est la fonction java script, et le lien qui lui fait appel.
  • Commenter cette réponse |
Score
0
òh
òi
|
Y a t il plusieurs "option"dans une page?
Recois tu sa valeur d une page externe? Peux tu modifier l appel à la fontion javascript?
(je finis de manger et je t ecris un exemple depuis un pc)
  • Commenter cette réponse |
Score
0
òh
òi
|
merci pour cette réponse Shinea, cependant j'ai un autre problème, le nom de ma select ( option[365] ) change automatiquement de valeur aléatoirement

ex: option[245] , option[332], option[144].....

ya-il un moyen de lire cette valeur automatiquement?
  • Commenter cette réponse |
Score
0
òh
òi
|
up
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS