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 :

Appel d'une fonction JS sur onchange


Sujet :

JavaScript

  1. #1
    Membre �clair�
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par d�faut Appel d'une fonction JS sur onchange
    Bonjour,

    tout d'abords je suis d�butant en javascript. Donc quelque chose de simple qui a l'air de marcher pour d'autres ne marche pas pour moi.

    J'ai ma vue PHP avec une liste d�roulante qui appelle une fonction js sur un onchange:

    Code php : 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
    <select name="BFAlist" id="BFAlist" onchange="bfaSelected();">
            <?php 
            $row = 0;
            if (($handle = fopen('files/FR21COMV01TBFA20121002.CSV', "r")) != FALSE) {
                while (($data = fgetcsv($handle, 1000, ";")) != FALSE) {
                    $row++;
                    $line = '<option value=\''.$row.'\'>';
                    $num = count($data);
                    for ($j=1; $j<$num; $j++) {
                        $line .= $data[$j].' - ';
                    }
                    // on enlève le dernier '-' avant de fermer la balise option
                    $line = substr($line, 0, strlen($line)-2);
                    $line .= '</option>';
                    echo $line;
                }
            }
            ?>
        </select>

    Mon mod�le avec la fonction js (o� j'essaie seulement d'afficher un message sur ma page):

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    <script language="Javascript">
        function bfaSelected() {
            alert('test');
            window.location = 'index.php?page=taux_bfa_ctrl&id='+selectOpt; 
        }
    </script>
    Et mon controleur:

    Code php : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    include('model/taux_bfa_model.php');
     
    include('view/taux_bfa_view.php');

    Aucun message 'test' ne s'affiche...

    J'ai essay� avec un onselect, m�me r�sultat...

  2. #2
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Le code PHP ne nous int�resse pas. C'est le code HTML + JavaScript g�n�r� (celui affich� par le navigateur) qu'il faut nous montrer.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  3. #3
    Membre �clair�
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par d�faut
    A d'accord, voil�:

    Code html : 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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    !DOCTYPE html>
    <html>
        <head>
            <meta charset=ISO-8859-1 />
            <link rel="stylesheet" type="text/css" href="css/style.css" />
            <title>Liaison AS400</title>
        </head>
     
        <body>
     
            <div id="top"></div>
    <div id="menu">
        <a href="index.php?page=taux_bfa_ctrl" title="Gestion des taux de BFA">taux de BFA</a>
    </div>
    connexion AS400 réussie.<br><div id="main">
    <script language="Javascript">
    function bfaSelected() {
            alert('test');
             window.location = 'index.php?page=taux_bfa_ctrl&id='+selectOpt; 
        }
    </script>    
    <h1>Gestion des taux de BFA</h1>
     
     
    <form method="post" action="index.php">
    <input type="hidden" name="page" value="taux_bfa_ctrl" />
     
    <table id="listBFA">
    <tr>
        <td>Choisissez: </td>
        <td>
        <select name="BFAlist" id="BFAlist" onchange="bfaSelected();">
            <option value='1'>plein de valeurs ici</option>    </select>
        </td>
    </tr>
    </table>
    </body>
    </html>

  4. #4
    Invit�
    Invit�(e)
    Par d�faut
    Bonjour,
    aucun probl�me en vue...
    Le code ci-dessus semble fonctionner (affichage de l'alerte "test").

    A part remplacer :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <script language="Javascript">
    en :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <script type="text/javascript">
    Tu as s�rement d'autres scripts JavaScript sur ta page, non ?
    L'un d'eux doit poser probl�me.

  5. #5
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Salut.

    Il vient d'o� le selectOpt dans la fonction ?

  6. #6
    Membre �clair�
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par d�faut
    Ah oui pardon j'ai voulu mettre que le minimum n�cessaire et du coup j'en oublie du code:

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function bfaSelected() {
            alert('test');	
            var selectElmt = document.getElementById(selectId);	
            var selectOpt = selectElmt.options[selectElmt.selectedIndex].value;
     
             window.location = 'index.php?page=taux_bfa_ctrl&id='+selectOpt; 
        }

    Et j'avais bien une autre fonction js juste avant celle l�, mais je viens de la mettre en commentaire, et mon message 'test' ne s'affiche toujours pas.

  7. #7
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Alors la nouvelle question devient :
    Il sort d'o� selectId dans la fonction ?
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  8. #8
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Peut-�tre un autre oubli, mais c'est maintenant selectId qui est ind�fini.

  9. #9
    Membre �clair�
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par d�faut
    Tout � fait, l� il s'agissait bien d'une erreur de ma part dans mon code, je l'ai remplac� par l'id de mon select dont le nom est 'BFAlist'
    Mais �a ne m'affiche toujours rien.

  10. #10
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    S'il y a bien plusieurs options dans ton select (le onchange ne se d�clenche qu'en changeant d'option), il reste cette piste :
    Citation Envoy� par jreaux62 Voir le message
    Tu as s�rement d'autres scripts JavaScript sur ta page, non ?
    L'un d'eux doit poser probl�me.

  11. #11
    Invit�
    Invit�(e)
    Par d�faut
    Au lieu de faire une grande phrase, remets ton code corrig�.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    <script type="text/javascript">
    function bfaSelected() {
            var selectOpt = document.getElementById('BFAlist').value;
            alert('test : '+selectOpt);	
             window.location = 'index.php?page=taux_bfa_ctrl&id='+selectOpt; 
        }
    </script>
    Au fait, tu peux nous expliquer pourquoi tu fais une redirection en JavaScript, alors que tu as un formulaire fait pour �a ??
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    <form method="post" action="index.php">
    <input type="hidden" name="page" value="taux_bfa_ctrl" />
    Cela revient � mettre method="get" au lieu de method="post".

  12. #12
    Membre �clair�
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par d�faut
    Au fait, tu peux nous expliquer pourquoi tu fais une redirection en JavaScript, alors que tu as un formulaire fait pour �a ??
    En fait j'aimerais que la page soit recharg�e sur le changement de valeur de la liste et non sur le click d'un bouton.

  13. #13
    Expert �minent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Is�re (Rh�ne Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par d�faut
    Si ton form se termine apr�s le select (actuellement on ne voit pas le tag de fin), il suffit de faire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <select name="BFAlist" id="BFAlist" onchange="this.form.submit();">
    Sinon, au cas o�, ce serait
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    window.location.href = '....';
    voire
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    window.location.replace('....');

  14. #14
    Membre �clair�
    Homme Profil pro
    Inscrit en
    Novembre 2010
    Messages
    273
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 273
    Par d�faut
    Si ton form se termine apr�s le select (actuellement on ne voit pas le tag de fin), il suffit de faire

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <select name="BFAlist" id="BFAlist" onchange="this.form.submit();">
    C'est tout simplement �a en effet. Je me suis compliqu� pour rien.
    Merci!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Appel d'une fonction JS sur l'attr. d'une balise
    Par JYDARTHA dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 23/04/2015, 20h30
  2. appel a une fonction membre sur un non-object
    Par totensai dans le forum Langage
    R�ponses: 2
    Dernier message: 14/01/2012, 22h43
  3. appel d'une fonction en cliquant sur un lien
    Par pazaroti dans le forum Servlets/JSP
    R�ponses: 11
    Dernier message: 17/04/2007, 13h20
  4. appel d'une fonction sur autre page
    Par champion dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 03/03/2007, 14h37
  5. [XSLT] appel d'une fonction javascript "onchange" d'un input text
    Par loukili81 dans le forum XSL/XSLT/XPATH
    R�ponses: 5
    Dernier message: 25/12/2006, 18h14

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