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

Langage PHP Discussion :

[PHP-JS] Évènement OnChange


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Août 2007
    Messages : 68
    Par défaut [PHP-JS] Évènement OnChange
    Bonjour,

    Voici mon souci:
    je cherche à faire apparaitre dans une liste déroulante les communes qui appartiennent au Code Postal précédemment renseigné à partir de l'évènement OnChange de mon textbox (INPUT) nommé 'code_postal'.

    Voici ci ce qui fonctionne, à partir d'un bouton de commande "villes" qui fait apparaitre ma liste déroulante avec les Villes selon le code postal:

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    <?php
    include("test_fonctions_postal.php");
    ?>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Document sans titre</title>
    </head>
     
     
     
    <body>
     
    <form name='postal' id ='ok' method='POST' action='postal.php';>
    <?php
     
    ?>
      <p>Code Postal : <input name='code_postal' type='text' value="<?php echo $_POST['code_postal']; ?>"/>
     
      <input type='submit' name='villes' value='Villes'/><br>
     
    <?php
    if (isset ($_POST['villes']))
    {
    		//On récupère les valeurs entrées par l'utilisateur :
    		$code_postal=$_POST['code_postal'];
     
    }
     
     
    if ($code_postal =="") 
    {
    }
    else
    {
    recherche(); //j'appelle ma fonction recherche() après le click sur le bouton
    }
     
    ?>
     
    </p>
     
    </form>
    </body>
    </html>
    Code de ma fonction recherche(), incluse dans test_fonctions_postal.php :
    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
    26
    27
     
    <?php
    function connectMaBase(){
        $base = mysql_connect ('xxx', 'xx', 'xx');  
        mysql_select_db ('xx', $base) ;
    }
    ?>
     
    <?php
    function recherche(){
    connectMaBase();
     
    $code_postal=$_POST['code_postal'];
     
    $sql = " SELECT villes FROM villes WHERE code_postal=".$code_postal." "; 
    $result = mysql_query($sql) or die("Requete pas comprise"); 
     
    echo "<form action='postal.php' method='POST'>
    <table>Villes :<select name='villes'>"; 
    while ($row=mysql_fetch_array($result)) 
    { 
    echo"<option>$row[0]</option>"; 
    } 
    echo"</select> 
    </table>"; 
    }
    ?>
    J'aurais donc souhaité évité de fameux clique mais avoir quelque chose de plus "dynamique", en modifiant comme ceci la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Code Postal : <input name='code_postal' type='text' value="<?php echo $_POST['code_postal']; ?>" onChange='recherche();'/>
    pour appeler ma fonction recherche() et supprimer le bouton Villes.

    Aucune erreur ne m'est retourné par mon navigateur, mais on dirait que rien ne se passe quand j'utilise le onChange.

    Si quelqu'un peut m'aider ...
    Je vous remercie.

    Nevil

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    on n'appel pas une fonction php dans les évènements javascript (onchange)
    ta fonction recherche() s'exécutera coté serveur
    ça devra marcher avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input name='code_postal' type='text' value="<?php echo $_POST['code_postal']; ?>" onChange='document.nomFormulaire.submit();'/>
    note que l'évènement ne se déclenchera pas à chaque caractère saisi, mais seulement après que ton input text perd le focus, à la place tu peut utiliser les events.
    une chose tres importante : recharger toute la page (car c'est ce qui arrivera) à chaque caractère saisi par l'utilisateur me semble abusif
    J'aurais donc souhaité évité de fameux clique mais avoir quelque chose de plus "dynamique"
    je te conseil de te documenter sur AJAX qui est parfaitement adapté à ton besoin

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Août 2007
    Messages : 68
    Par défaut
    Merci pour ta réponse nsanabi, cela m'a bien aidé.
    Le fonctionnement actuel colle très bien avec ce que je voulais faire.
    J'y connais rien au sujet des évènements et des arguments qu'ils peuvent contenir, je vais plonger dans mes tuto !

    Je te remercie une nouvelle fois, c'est parfait.

    Nevil

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    570
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Septembre 2003
    Messages : 570
    Par défaut
    bon courage
    n'oublie pas le bouton résolu si c'est bon

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2009, 15h16
  2. envoyer un formulaire sur un évènement onchange.
    Par maniaco_jazz dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2005, 14h44
  3. Courcircuiter l'évènement OnChange d'un TEdit
    Par Captain_JS dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/07/2005, 14h33
  4. [HTML] Probleme avec les événement OnChange et OnClick
    Par G_Kill dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 04/05/2005, 16h06
  5. Récupérer événements OnChange&OnScroll de ScrollBox
    Par bohort dans le forum C++Builder
    Réponses: 2
    Dernier message: 21/09/2004, 10h24

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