Update a partir d'une valeur d'une liste deroulante

Résolu
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
- Modifié par alone06 le 19/11/2013 à 23:01
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016
- 20 nov. 2013 à 00:10
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

jordane45
Messages postés
35811
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
19 nov. 2013 à 22:57
Dans tes <option en value..tu mets ce que tu veux envoyer... $val ['id']
0
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

Modifié par alone06 le 19/11/2013 à 23:07
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
0
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

19 nov. 2013 à 23:18
Je viens de régler le soucis de l'affichage et la recupération de l'id il me reste maintenant la requete update
0
jordane45
Messages postés
35811
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
19 nov. 2013 à 23:33
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

19 nov. 2013 à 23:46
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
0
jordane45
Messages postés
35811
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
19 nov. 2013 à 23:58
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 ^^
0
alone06
Messages postés
115
Date d'inscription
mardi 9 novembre 2010
Statut
Membre
Dernière intervention
18 mai 2016

20 nov. 2013 à 00:10
ok merci
0