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 :

[POO] 2 actions sur le onchange


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Points : 15
    Points
    15
    Par défaut [POO] 2 actions sur le onchange
    Bonjour à tous !

    Je suis en train de modifié un site.
    Actuellement, il y a une action onchange sur une liste déroulante. Celle ci modifie la valeur d'un champs texte. J'aimerais ajouter une action qui modifierais les valeurs d'une autre liste deroulante.
    Les deux fonctions marchent independaemment l'une de l'autre, mais je n'arrive pas à appeler les 2 fonctions par le onchange. A mon avis, c'est juste une histoire de guillemet mal placé ou quelque chose dans le genre, mais, j'ai l'impression d'avoir tout essayé. Voici ce que j'ai :

    onchange='UpdaterPriorites(true, \"\")', 'UpdaterListe(true, \"\")';
    J'ai aussi essayé
    onchange='UpdaterPriorites(true, \"\")'; 'UpdaterListe(true, \"\")';
    onchange='UpdaterPriorites(true, \"\"), UpdaterListe(true, \"\")';

    La premiere solution appelle bien UpdaterPriorites mais ignore UpdaterListe.
    Si quelqu'un comprends ce que je veux faire, et voit ou est mon erreur, merci de m'aider.

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="UpdaterPriorites(true, ''); UpdaterListe(true, '')";
    en rouge des doubles quotes "
    en vert deux simples quotes '
    en un point virgule pour séparer les fonctions ..

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Merci pour ta reponse, mais pour compliquer un peu la chose et se perdre entre les simples cotes et les double cotes, tout ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onChange="UpdaterPriorites(true, ''), UpdaterListe(true, '')";
    est en fait une chaine de caractère qui est un argument d'une fonction AjouterListe et qui prends en parametre parmi d'autre une chaine $action. Cette chaine est ensuit concatenée au reste dans le code html.
    J'ai donc mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "onChange=\"UpdaterPriorites(true, ''), UpdaterListe(true, '')\";"
    mais le seul effet que ça a est de meme plus faire fonctionner UpdaterPriorites

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Tu veux dire que tu essayes d'attribuer un onclick à partir d'une chaine de caractères en javascript ???
    A mon avis il faut que tu nous montres un peu plus de code en amont, c'est là que ça pèche ...

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2007
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Ouai c'est vrai que ce n'est pas tres explicite

    En fait je reprends le code d'un autre, et j'ai pas vraiment l'habitude de coder comme ça mais ça s'avere assez efficace.

    Donc voila la ligne complete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $form->AjouterListeMultiple(true, "", "idClientMutuel", true, "Sélectionnez les clients concernés", $listeClientsMutuels, "liste", " onchange='UpdaterPriorites(true, \"\"); UpdaterListe(true, \"\")';", @$selectedClientsMutuels, "(enfoncez la touche « CTRL » pour des choix multiples)");
    Comme on peut le voir, je travail avec un objet de type formulaire et j'appelle la fonction AjouterListeMultiple de la classe.
    La voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    function AjouterListeMultiple($obligatoire, $msgValidation, $nom, $modif=true, $titre, $liste, $classe= "", $action="", $selected= array(), $suffixe= "")
    		{			
    		$this->m_liste[]= array("obligatoire" =>     $obligatoire,
    		                        "msgValidation" =>   $msgValidation,
    								"nom" =>             $nom,
    								"titre" =>           $titre,
    								"type" =>            "listeMultiple",
    								"liste" =>           $liste,
    								"classe" =>          $classe,
    								"action" =>          $action,
    								"selected" =>        $selected,
    								"modif" =>			 $modif,
    								"suffixe" =>         $suffixe);
     
    		$this->m_ordreChamps[]= "liste";
    		}
    Un peu plus bas dans le code je test les valeurs de m_ordreChamps. Voici la partie concernant les listes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    elseif ($this->m_ordreChamps[$i] == "liste")
    				{
    				...
    				switch ($liste["type"])
    					{
    					case "chiffres":      ListeChiffres($liste["nom"], $liste["classe"], $liste["nb"], $liste["depart"], $liste["action"], $liste["selected"], $liste["champVide"], $liste["suffixeDernierElement"]); break;
    					case "langues":       ListeLangues($liste["nom"], $liste["classe"], $liste["action"], $liste["selected"], $liste["nbLangues"], $liste["champVide"], $liste["langue"]); break;
    					case "ouiNon":        ListeOuiNon($liste["nom"], $liste["classe"], $liste["action"], $liste["selected"], $liste["champVide"], $liste["langue"]); break;	
    					case "sexe":          ListeSexe($liste["nom"], $liste["classe"], $liste["action"], $liste["selected"], $liste["champVide"], $liste["langue"]); break;	
    					case "provinces":     ListeProvinces($liste["nom"], $liste["classe"], $liste["action"], $liste["selected"], $liste["champVide"], $liste["langue"]);  break;
    					case "dates":         break; // Un autre jour... ça me tente pas là.
    					case "liste":         Liste($liste["liste"], $liste["nom"], $liste["modif"], $liste["classe"], $liste["action"], $liste["selected"], true, false); break;
    					case "listeMultiple": ListeMultiple($liste["liste"], $liste["nom"], $liste["modif"], $liste["classe"], $liste["action"], $liste["selected"]); break;
     
    					default:              Liste($liste["liste"], $liste["nom"], $liste["classe"], $liste["action"], $liste["selected"], true, false); break;
    					}
     
    				...}
    Et donc j'appelle la fonction ListeMultiple qui me crée mon code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    function ListeMultiple($liste, $id, $modif=true, $classe= "", $action="", $selected= array())
    	{
     
    	if ($classe != "") $classe= " class='$classe' ";
     
    	if ($modif)
    		echo "<select " . $classe . " id='" . $id . "[]' name='" . $id . "[]' " . $action . " multiple='multiple' >\n";
    	else
    		echo "<select " . $classe . " id='" . $id . "[]' name='" . $id . "[]' " . $action . " multiple='multiple' disabled=true>\n";
     
    	for ($i= 0; $i != sizeof($liste); ++$i)
    		{
    		echo "<option label='" . $liste[$i][0] . "' id='$id$i' value='" . $liste[$i][1] . "' ";
     
    		if (is_array($selected))
    			{
    			if (in_array($liste[$i][1], $selected))
    				echo (" selected=selected ");
    			}
     
    		echo (">" . $liste[$i][0] . "</option>");
    		}
     
    	echo("</select>");
    	}
    Voila maintenant ya tout le code correspondant a la création de ma liste. J'espere que ceci va vous aider.
    Merci par avance

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    à pirori la syntaxe à l'air correcte ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    " onchange='UpdaterPriorites(true, \"\"); UpdaterListe(true, \"\")';"
    essaye peut être d'inverser les quotes ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ' onchange="UpdaterPriorites(true, \"\"); UpdaterListe(true, \"\")";'
    mais les priorités et echappements sont corrects ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/08/2011, 17h23
  2. Réponses: 5
    Dernier message: 14/12/2007, 18h10
  3. Action sur onchange
    Par jfrag dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 31/10/2006, 11h05
  4. 2 actions sur evenement onchange sur champ Select
    Par falz222 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 31/08/2006, 20h59
  5. Interaction entre formulaire // Action sur OnChange ...
    Par hisy dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/01/2006, 14h58

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