Update a partir d'une valeur d'une liste deroulante [Résolu]

Signaler
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
-
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
-
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.
<?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
<?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
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');

7 réponses

Messages postés
29235
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2020
335
Dans tes <option en value..tu mets ce que tu veux envoyer... $val ['id']
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

Merci pour votre réponse.
j'ai deja essayé de mettre
<option value=" $val ['id']">Choisissez un titre:</option>

mais ça n'a pas marché :(
je n'ai meme pas d'affichage
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

Je viens de régler le soucis de l'affichage et la recupération de l'id il me reste maintenant la requete update
Messages postés
29235
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2020
335
Une question par topic par contre stp.
Celle ci doit être mis en résolue.

Si tu as un siuci pour ta requête update, ouvre une nouvelle discussion.
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

Merci, mais deja la question etait par rapport a 'Update a partir d'une valeur d'une liste deroulante' alors je ne sais pas si je dois la mettre encore en résolue
Messages postés
29235
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
14 août 2020
335
J'ai pensé a utiliser ajax mais mon soucis est que j'arrive pas a recuperer l'id de l'enregistrement.
Cette questiin est résolue.

Pour ce qui est de l'update, tu n'expliques pas quel est le souci... donc nouvelle question ^^
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

ok merci