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

alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention - 19 nov. 2013 à 22:34 - Dernière réponse : alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention
- 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');
Afficher la suite 

Votre réponse

7 réponses

jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 20 septembre 2018 Dernière intervention - 19 nov. 2013 à 22:57
0
Merci
Dans tes <option en value..tu mets ce que tu veux envoyer... $val ['id']
Commenter la réponse de jordane45
alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention - Modifié par alone06 le 19/11/2013 à 23:07
0
Merci
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
Commenter la réponse de alone06
alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention - 19 nov. 2013 à 23:18
0
Merci
Je viens de régler le soucis de l'affichage et la recupération de l'id il me reste maintenant la requete update
Commenter la réponse de alone06
jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 20 septembre 2018 Dernière intervention - 19 nov. 2013 à 23:33
0
Merci
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.
Commenter la réponse de jordane45
alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention - 19 nov. 2013 à 23:46
0
Merci
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
Commenter la réponse de alone06
jordane45 22518 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 20 septembre 2018 Dernière intervention - 19 nov. 2013 à 23:58
0
Merci
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 ^^
Commenter la réponse de jordane45
alone06 115 Messages postés mardi 9 novembre 2010Date d'inscription 18 mai 2016 Dernière intervention - 20 nov. 2013 à 00:10
0
Merci
ok merci
Commenter la réponse de alone06

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.