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 :

[MySQL] onchange et requête SQL


Sujet :

JavaScript

Vue hybride

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Par défaut [MySQL] onchange et requête SQL
    Bonjour à tous

    J'ai un poblème depuis le début de l'après midi que je n'arrive pas à resoudre.

    le voici

    J'ai créé un tableau qui recupère les données dans un base mysql a travers une requete.
    Au dessus de ce tableau j'ai mis 3 listbox pour selectionner les valeurs pour ma requete. Les listbox on un parametre "onchange=location.reload()" qui fonctionne mais à moitié.
    Quand je selectionne une valeur de ma listbox la page se recharge mais les valeurs des variables ne change pas ci qui ne remet pas à jour ma requete.

    Voici mon code

    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
      <?php
            //crée une listbox 
        function listbox ( $name, $array_value = array() , $array_selected , $multiple = 0 , $size = 1)
        //* $name : Le nom du l'élément select.
        //* $array_value : Le tableau des valeurs de l'élément select.
        //* $array_selected : Le tableau des valeurs sélectionnées.
        //* $multiple : Valeur bolléenne indiquant si l'élément select est multiple ou simple.
        {
            $select = '<select ' . ( ( $multiple == 1 ) ? ' multiple name="' . $name . '[]"' : ' name="' . $name . '"' ) . 
                    ' size="' . $size . '" onchange=location.reload()>' . "n";
            
                foreach ( $array_value as $key => $value )
                {
                    $select .= '<option value="' . $key . '"' .
                    ( ( $multiple == 1 ) ? ( in_array ( $key , $array_selected ) ? ' selected="selected"' : '' ) : 
                                    ( $key == $array_selected ? ' selected="selected"' : '' ) ) .
                    '>' . $value . '</option>' . "n" ;
                }
            $select .= '</select>' ;
            
            return $select ;
        }
     ?>
        
    <html>
    <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8" />
            <title>Gestion - Heures</title>
            <link rel="stylesheet" type="text/css" href="design.css" /> <!-- Liens vers le feuillet de style CSS -->
    </head>
    <body>
    <form name="tbl_heures" action="temp2.php" method="post">
                    
                    <div id="tbl_heures">
                    <table id="tables">
                                            <tr>
                                    <td><span class=tete>Nom</span></td>
                                    <td><?php
                            include("connection.php");
                            //on recupère le nom des employés
                            $sql = "SELECT empl_id, empl_nom FROM employe_tbl" ;
                            $result = mysql_query ( $sql ) ;
                            $empl_nom = array() ;
                            while ( $row = mysql_fetch_assoc ( $result ) )
                            {
                            $empl_nom[] = $row ['empl_nom'] ;
                            }
                     
                            echo listbox ( 'employe_nom' , $empl_nom, $empl_select =( isset ( $_POST['employe_nom'] ) ? $_POST['employe_nom'] : 0 )) ;?></td>
                                    <td><span class=tete>Mois</span></td>
                                    <td>
              <?php echo listbox ( 'mois' , array(1 => "Janvier", "Fevrier", "Mars", "Avril", "Mai", "Juin", "Juillet", "Aout", "Septembre", "Octobre", "Novembre", "Decembre") , $mois_select =( isset ( $_POST['mois'] ) ? $_POST['mois'] : 0 ) ) ;?></td>                        
                                    <td><span class=tete>Année</span></td>
                                    <td>
              <?php echo listbox ( 'annee' , array(1 => "2006", "2007", "2008", "2009", "2010") , $annee_select =( isset ( $_POST['annee'] ) ? $_POST['annee'] : 0 ) ) ;?></td>
      <?php
     
      //selectionne le mois à affiché dans le tableau
      //ne tiens pas compte des mois à 30 ou 29 ou 28 jour car dans la table heures_tbl il ne
      // devrait pas avoir d'erreur vu que le formulaire "form_ajt_heures" à un control.
     
      if ($_POST['mois'] = 1)
            {
                    $debut_mois = 20070301 ; $fin_mois = 20070331;
            }
      
      
      ?>
     
       </td>
    				</tr>
    		</table>		
    	    </div>
    			<div id="tbl_heures1">
    	 			<table id="tables">
    					<tr><td id=col120px class=gras>Nom</td>
    					<td id=col120px class=gras>Prénom</td>
    					<td id=col120px class=gras>Date</td>
    					<td id=col120px class=gras>Nombre d'heures</td></tr>
    					<?php
                                    
                                            $id_connexion=mysql_connect("localhost","jscheuner","jo1199");
                                            mysql_select_db("gestion",$id_connexion);
     
                                            $requete = " SELECT empl_nom, empl_prenom, heu_date, heu_heures, (SELECT
                                                                    SEC_TO_TIME( SUM(TIME_TO_SEC(heu_heures)) ) FROM heures_tbl
                                                                    INNER JOIN employe_tbl ON heures_tbl.heu_empl_id = employe_tbl.empl_id 
                                                                    WHERE empl_id = ($empl_select + 1)) As total_heures
     
                                                                    FROM heures_tbl
                                                                    INNER JOIN employe_tbl ON heures_tbl.heu_empl_id = employe_tbl.empl_id                                          
                                                                    WHERE empl_id = ($empl_select + 1) AND heu_date >$debut_mois AND heu_date <= $fin_mois ";
                                                                                                    
                                            $resultat=mysql_query($requete,$id_connexion);
                                            
                                            while ($tableau=mysql_fetch_array($resultat,MYSQL_ASSOC))
                                            {
                                            echo '<tr><td id=col120px>',$tableau['empl_nom'],'</td><td id=col120px>',$tableau['empl_prenom'],'</td>
                                            <td id=col120px>',$tableau['heu_date'],'</td><td id=col120px>',$tableau['heu_heures'],'</td></tr>';
                                            $total_heures = $tableau['total_heures'];       
                                            }?>
    				</table>
     
    		<table id="tables">		
    			<tr ><br/>
    		<td id=col120px><input type=submit class=bouton value="Actualiser" /></td>
    		<td id=col120px> </td>
    		<td id=col120px class=gras>Total</td>		
    		<td id=col120px class=gras><?php echo $total_heures?> heures</td>
    		</tr
    		</table>
    			</div>
     
    </body>
    </html>
    Il y a encore une petite chose il y a un bouton actualiser
    Si je selectionne mes valeurs de me liste box et je clic sur mon bouton actualiser ca marche mais après l'avoir fais si je change une des valeurs dans un listbox mon explorer me demande de confirmer ce qui et désagrèable.


    Ce que j'aimerai bien c'est éliminer ce bouton et que la requete se rafraichisse sur un onchange des listbox. Comment dois-je m'y prendre.

    ps je ne suis pas sur que ma démarche pour créer ce tableaux soie la bonne si vous avez des suggestions je suis preneur.

  2. #2
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    en général c'est onChange="this.form.submit()" qu'on utilise pour poster un formulaire directement.
    bye

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2005
    Messages : 14
    Par défaut [select] et [variable]
    Ok merci pour ta réponse ce marche.

    J'ai encore une petite question
    Toujours sur ce code comment pourrai-je extraire la valeur d' un select et non l'id de selection exemple:

    1 => nom1
    2 => nom2
    3 => nom3
    4 => nom4

    Si je selectionne nom2 j'aimerai avoir dans ma variable nom2 et pas 2.
    Il faut savoir que la listbox se remplis avec une table de mysql.

  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
    option[i].text

Discussions similaires

  1. Restauration d'un dump : mysql.exe ou requête SQL?
    Par CleeM dans le forum Administration
    Réponses: 0
    Dernier message: 21/08/2012, 16h16
  2. [MySQL] [MySQL] requête sql recherche de mots clés
    Par lanysteph dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/07/2009, 18h13
  3. PB requête SQL sgbd Mysql !
    Par liquideshark dans le forum JDBC
    Réponses: 8
    Dernier message: 21/08/2007, 12h09
  4. Parser une requête SQL pour MySQL
    Par gassla dans le forum SGBD
    Réponses: 3
    Dernier message: 02/08/2006, 15h36

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