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

PHP & Base de données Discussion :

Update a partir d'une valeur d'une liste deroulante [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Update a partir d'une valeur d'une liste deroulante
    Bonjour,
    J'ai besoin de votre aide svp car je galère depuis un moment
    Voila mon soucis; je voudrais creer une requete update pour modifier les enregistrement d'une table.
    l'enregistrement qu'on voudrait changer serait choisi a partir d'une liste deroulante, des lors toutes les informations correspondants a cet enregistrement seront listées dans un tableau pour que l'utilisateur puisse voir les anciennes informations.
    J'ai pensé a utiliser ajax mais mon soucis est que j'arrive pas a recuperer l'id de l'enregistrement.
    J'arrive a lister tous les noms des enregistrements sous forme d'une liste deroulante.
    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
    <?php include('conn.php'); ?>
    <html>
     <head>
     <script>
     function showUser(str)
     {
     if (str=="")
       {
       document.getElementById("txtHint").innerHTML="";
       return;
       } 
     if (window.XMLHttpRequest)
       {// code for IE7+, Firefox, Chrome, Opera, Safari
       xmlhttp=new XMLHttpRequest();
       }
     else
       {// code for IE6, IE5
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
       }
     xmlhttp.onreadystatechange=function()
       {
       if (xmlhttp.readyState==4 && xmlhttp.status==200)
         {
         document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
         }
       }
     xmlhttp.open("GET","getuser.php?q="+str,true);
     xmlhttp.send();
     }
     </script>
     </head>
     <body>
     
    <select id="select2" name="id" onChange="showUser(this.value)">
     
        <option value="">Choisissez un titre:</option>
        <?php
        $sql = 'SELECT * FROM users';
        $req = mysql_query($sql);
        $data = array();
     
     
        while ($val = mysql_fetch_array($req))
        {
           // mettre tous les champs ici
           $data[] = '{"nom":"'. addcslashes($val['nom'], '"') .'", "prenom":"'. addcslashes($val['prenom'], '"') .'", "age":"'. addcslashes($val['age'], '"') .'", "poste":"'. addcslashes($val['poste'], '"') .'", "adresse":"'. addcslashes($val['adresse'], '"') .'"}';
           echo '<option value="'.$val['nom'].'">'.$val['nom'].'</option>';
     
        }
     
        ?> 
    </select>
    <script type="text/javascript">
    var data = {<?php echo implode(', ', $data); ?>};
    function showInfo(nom)
    {
        if (data[nom])
            alert('nom: '+ nom +'\nprenom: '+data[nom].prenom+'\nage: '+data[nom].age+'\nposte: '+data[nom].poste+'\nadresse: '+data[nom].adresse);
        else
            alert('veuillez sélectionner une valeur');
    }
    </script>
     <br>
     <div id="txtHint"><b>la liste des agents. </b></div>
     
     </body>
     </html>
    et ici le script ajax getuser.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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
    $q = intval($_GET['q']);
     
     $con = mysqli_connect('localhost','X','X','X');
     if (!$con)
       {
       die('Could not connect: ' . mysqli_error($con));
       }
     
     mysqli_select_db($con,"X");
     $sql="SELECT * FROM users WHERE id = '".$q."'";
     
     $result = mysqli_query($con,$sql);
     
     echo "<table border='1'>
     <tr>
     <th>Nom</th>
     <th>Prenom</th>
     <th>Age</th>
     <th>Poste</th>
     <th>Adresse</th>
     </tr>";
     
     while($row = mysqli_fetch_array($result))
       {
       echo "<tr>";
       echo "<td>" . $row['nom'] . "</td>";
       echo "<td>" . $row['prenom'] . "</td>";
       echo "<td>" . $row['age'] . "</td>";
       echo "<td>" . $row['poste'] . "</td>";
       echo "<td>" . $row['adresse'] . "</td>";
       echo "</tr>";
       }
     echo "</table>";
    echo "$q";
     mysqli_close($con);
     ?>
    Le souci est est que la valeur passée de "q" est showUser(this.value) je ne sais pas comment passer a la place de "value" la valeur de "id" ou '.$val['id'].' pour pouvoir l'utiliser par la suite dans ma requete update.
    J'espere que j'etais assez clair dans mon explication je reste a disposition pour tout complement d'information.
    et merci d'avance.

    Ps ici vous trouverez le script sql
    Code sql : 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
    CREATE TABLE IF NOT EXISTS `users` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `nom` text NOT NULL,
      `prenom` text NOT NULL,
      `age` int(11) NOT NULL,
      `poste` text NOT NULL,
      `adresse` text NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;
    INSERT INTO `users` (`id`, `nom`, `prenom`, `age`, `poste`, `adresse`) VALUES
    (1, 'le claire', 'jean', 26, 'comptabilite', 'paris'),
    (2, 'dumas', 'alexandre', 40, 'ressources humaines', 'paris'),
    (3, 'dubois', 'karim', 27, 'comptabilite', 'paris'),
    (4, 'dubris', 'françois', 30, 'maintenance', 'paris'),
    (5, 'champentier', 'jean yves', 26, 'communication', 'paris'),
    (6, 'la fontaine', 'pierre', 26, 'communication', 'paris'),
    (7, 'morel', 'Jacquelyne', 26, 'comptabilite', 'paris');

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu veux passer l'id, pourquoi tu as mis le nom en value ?

    Ensuite pour la valeur selectionnée d'une liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var s = document.GetElementById("select2" )
    var valeur = s.options[s.selectedIndex].value

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Services à domicile

    Informations forums :
    Inscription : Septembre 2011
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    pour la récupération de l'id je viens de le regler il falait juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="'.$val['nom'].'">'.$val['nom'].'</option>';
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="'.$val['id'].'">'.$val['nom'].'</option>';
    et j'ai réussi alors a recuperer l'id la question pour laquelle j'ai mis le post est l'update. honnetement je ne sais pas ou mettre la requete d'update ni ou mettre les champs d'ecriture .

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 2
    Dernier message: 18/11/2012, 11h25
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. passer une valeur d'une requête a une table
    Par LesLemmings dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 09/06/2006, 14h13
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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