[JavaScript] Problème avec un select

Discussion dans 'Web, design' créé par Maleki, 11 Octobre 2006.

Statut de la discussion:
Fermée.
  1. Offline
    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
    Maleki, 11 Octobre 2006
    #1
  2. Offline
    Calvin80 Elite
    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)
    Calvin80, 12 Octobre 2006
    #2
  3. Offline
    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 ;)
    neku, 12 Octobre 2006
    #3
  4. Offline
    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 ?
    Maleki, 12 Octobre 2006
    #4
  5. Offline
    Bingo Beer Addict
    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.
    ;)
    Bingo, 12 Octobre 2006
    #5
  6. Offline
    SkYlEsS Kawai
    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. :)
    SkYlEsS, 13 Octobre 2006
    #6
  7. Offline
    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 ?
    Maleki, 16 Octobre 2006
    #7
  8. Offline
    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*$
    Bingo, 16 Octobre 2006
    #8
  9. Offline
    SkYlEsS Kawai
  10. Offline
    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
    Maleki, 21 Octobre 2006
    #10
Statut de la discussion:
Fermée.