[JavaScript] Problème avec un select

Statut
N'est pas ouverte pour d'autres réponses.

Maleki

Pain in the ass !
Bonjour,
L'énoncé :
J'ai un formulaire qui contient un select avec plusieurs options.
Je lui ai donné un évènement onChange :
Code:
<form action="page.php" method="post" name="form1">
  <select name="nom" id="nom" onChange="ma_fonction();">
    <option value="1" selected>Valeur1</option>
    <option value="2">Valeur2</option>
    ...
  </select>
</form>
Mon problème :
Ici, lorsque la page est rechargée, je me retrouve toujours avec Valeur1 sélectionnée. (Logique !)
J'aimerais que lorsque la page se recharge en sélectionnant par exemple Valeur2,
le "selected" se retrouve sur Valeur 2 et non sur Valeur1.
Pouvez-vous m'aider ?

Si vous avez compris bien entendu ! :-D
 

Calvin80

Respect is key
Namo a dit:
J'aimerais que lorsque la page se recharge en sélectionnant par exemple Valeur2,
le "selected" se retrouve sur Valeur 2 et non sur Valeur1.
Pouvez-vous m'aider ?

Si vous avez compris bien entendu ! :-D
tout depend ce que tu veux dire par "recharge".
si c'est un "refresh", je ne vois pas de solution simple.

si par contre, tu recharges par une action, alors il te suffit de recupérer ta valeur passé en paramètre $_POST ou $_GET (si c'est en PHP) et tester ton select pour savoir à quel endroit mettre ton 'selected'.

en utilisant que javascript, je dirais qu'il n'y a pas moyen (ou alors en bidouillant quelque chose de pas propre)
 

neku

Codeur roumain
Je ne connais pas assez javascript que pour t'aider, mais j'aimerais faire un éclaircissement.
Il ne faut pas confondre java et javascript ce sont deux language totalement différent malgré leur nom.
Javascript à été dévellopé par Microsoft, et microsoft à utilisé le mot java dans le nom pour profiter des l'influence que Java avait à ce moment là.
Donc attention lorsque vous dites Java ou Javascript car ceux-ci n'ont rien en commun ;)
 
1er
OP
M

Maleki

Pain in the ass !
Ne t'inquiètes pas, je fais "parfaitement" la différence entre JavaScript et Java.

Je pensais que la solution pouvait (ou peut) se faire en JavaScript.
Pour Calvin80 : Quand je dis "recharger la page", c'est pas exactement le terme que j'aurais dû employé.
En fait, grâce à l'évènement onChange, à chaque sélection d'une valeur, il y a un réaffichage de données en rapport avec celle-ci. Mais je crois que tu m'avais compris. ;)
En PHP, je devrais réafficher la valeur dans le select. Elle apparaîtra donc 2x...
Code:
echo "Valeur2 selected"
+
Valeur1
Valeur2
...
Hors, j'aimerais qu'elle soit affichée une seule fois et en plus, directement sélectionnée. Est-ce possible ?
Ou dois-je obligatoirement faire une boucle en PHP avec toutes les valeurs du select et la bonne valeur sélectionnée ?
 

Bingo

Beer Addict
neku a dit:
Je ne connais pas assez javascript que pour t'aider, mais j'aimerais faire un éclaircissement.
Il ne faut pas confondre java et javascript ce sont deux language totalement différent malgré leur nom.
Javascript à été dévellopé par Microsoft, et microsoft à utilisé le mot java dans le nom pour profiter des l'influence que Java avait à ce moment là.
Donc attention lorsque vous dites Java ou Javascript car ceux-ci n'ont rien en commun ;)
Tu confonds avec JScript.
C'est JScript et JavaScript qu'il ne faut pas confondre.
JScript a été développé par Microsoft, JavaScript a été développé par Netscape.
;)
 

SkYlEsS

Elite
Bref, un truc comme ceci devrait fonctionner non ?

Code:
<?
$var = $_POST['nom'];
?>
<form action="page.php" method="post" name="form">
<select name="nom" id="nom" onchange="ma_fonction();">
<option value="0" <? if(!isset($_POST('nom'])) echo 'selected="selected"'; ?>>Fais ton choix :</option>
<option value="1" <? if($var == '1') echo 'selected="selected"'; ?>>Valeur1</option>
<option value="2" <? if($var == '2') echo 'selected="selected"'; ?>>Valeur2</option>
</select>
</form>
Ce n'est pas très propre mais c'est règlo. :)
 
1er
OP
M

Maleki

Pain in the ass !
Pour l'instant, j'ai réglé ce problème en surfant ici
J'ai maintenant un autre problème avec les expressions régulières.
J'aimerais vérifier un champ afin qu'il contienne au moins 4 lettres au début du mot saisie et par la suite des lettres, chiffres, au maximum un seul underscore ou au maximum un seul tiret.
J'utilise la fonction preg_match et cela donne pour l'instant ceci :
Code:
if (!preg_match('^[a-zA-Z]{4}[:alnum:]\-\_$', $valeur_du_champ)) 
{ 
   echo 'Erreur de syntaxe.';
}
Pouvez-vous m'éclairer de votre lumière ?
 

Bingo

Beer Addict
Je ne connais pas [:alnum:], je suppose que c'est un synonyme de \w.
J'aurais écrit ça comme ça :

^[a-zA-Z]{4}\w*[-_]?\w*$
 
1er
OP
M

Maleki

Pain in the ass !
Merci pour le lien.
Je connaissais le site mais ce chapitre sur les expressions n'était pas encore venu me titiller les yeux ! (Ce qui est chose faite) :-D
 
Statut
N'est pas ouverte pour d'autres réponses.
Haut