IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Modification URL depuis un formulaire


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Par défaut Modification URL depuis un formulaire
    Bonjour,

    J'utilise une fonction javascript pour changer l'url dans la barre d'adresse. Cette fonction est appelée depuis un formulaire, par un champ de type select.

    Elle fonctionne bien en utilisant directement le nom du champ en question, cependant comme cette fonction sera utilisée pour différents champs, j'aimerais pouvoir en faire qu'une, et passer le nom du champ (select) en paramètre à la fonction.

    Mais en utilisant la paramètre passé, cela ne fonctionne pas je ne comprends pas pourquoi. Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	function ChangeUrl(formulaire, nomChamp){
       		if (formulaire.nomChamp.selectedIndex != 0){
          		location.href = formulaire.nomChamp.options[formulaire.nomChamp.selectedIndex].value;
           	}
    	}
    et l'appel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        	<form name="nbre_pges" method="post">
                        <select name="nb_ann" class="moyen" onChange="ChangeUrl(this.form, this.name);" style="width:11em;">
                            <option value="5">Résultats par page</option>
                            <option value="<? echo str_replace("pges=$g_pges", "pges=10", $url); ?>" <? if($f_nbr == "10") echo "selected=selected"; ?>>10</option>
                            <option value="<? echo str_replace("pges=$g_pges", "pges=20", $url); ?>" <? if($f_nbr == "20") echo "selected=selected"; ?>>20</option>
                            <option value="<? echo str_replace("pges=$g_pges", "pges=50", $url); ?>" <? if($f_nbr == "50") echo "selected=selected"; ?>>50</option>
                        </select>
    </form>
    Je teste avec un alert(nb_ann) le nom du champ, et sa valeur est bien correcte. Sur explorer il me dit que ma variable nomChamp est nul, mais si j'utilise dans la fonction "formulaire.nbre_pges" au lieu de "formulaire.nomChamp" ça fonctionne.. Je ne comprends pas d'où viens l'erreur...

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Par défaut
    Personne n'a d'idée pourquoi ça ne fonctionne pas ? Est-ce que mon utilisation de la variable "nomChamp" n'est pas correcte ?

  3. #3
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Tu ne passe pas la bonne valeur, tu passe le nom du champ alors que tu devrais passer la valeur
    ChangeUrl(this.form, this.name)

  4. #4
    Membre Expert
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	function ChangeUrl( nomChamp){
       		if (nomChamp.selectedIndex != 0){
          		location.href = nomChamp.options[nomChamp.selectedIndex].value;
           	}
    	}
    onChange="ChangeUrl(this);"


    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    formulaire.elements[nomChampName]

  5. #5
    Membre Expert Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Par défaut
    Oui Matthieu, tas réponse est bien plus précise que la mienne. Mais comme personne n'avait l'air de vouloir répondre à ce message, je me suis jeté à l'eau pour donner une piste.
    Tu sauves de la noyade

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2005
    Messages : 48
    Par défaut
    Merci pour vos réponses, j'ai testé la solution présentée et en effet ça fonctionne bien ! Merci beaucoup !

Discussions similaires

  1. [MySQL] Modification et ajout de donnée depuis un formulaire
    Par masterix59 dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 18/01/2010, 15h13
  2. Modification critére requête via formulaire
    Par frevale dans le forum Access
    Réponses: 1
    Dernier message: 02/11/2005, 21h30
  3. probleme de mise a jour de la BD depuis un formulaire
    Par sebduduf dans le forum Requêtes
    Réponses: 1
    Dernier message: 01/11/2005, 18h07
  4. [MySQL 5.0 InnoDB] Appeler une url depuis une ps
    Par Johan31 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 04/11/2004, 14h00
  5. Réponses: 2
    Dernier message: 28/10/2004, 16h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo