Transmettre la variable php via ajax

Fermé
Patrick - Modifié par jordane45 le 22/08/2015 à 23:36
jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 - 22 août 2015 à 23:48
Salut développeurs web, je voudrais crée une page web d'un chat ajax php. sur ma page, j'arrive à afficher les utilisateurs connecté en ligne. j'ai crée un formulaire d'un champ input de type hidden avec lequel je reçois l'id de membre pour envoi à l'ajax via onclick que j'ai mis dans le label, entre le label je reçois le nom du membre et mon plus grand besoin est quand je click sur un membre que ajax m'affiche une div à coté qui pourra m'amener l'id de ce membre, avec lequel je peu m'en servir pour identifier la personne avec qui je chat. chose que j'ai fais, mais ça ne marche pas comme je le voulais. avec ce que j'ai fais, quand je click sur un membre il envoi seulement l'id du premier membre, s'il y a 10 membres connectés, par ce que les membres d'affiches dans une boucle while de mysql et leurs id dans les champs input. quand je click sur le 5e membre c'est l'id du 1e membre qui part et s'affiche. que dois-je faire pour envoyer l'id ciblé.

j'ai deux pages, la première pour afficher les membres et après un click recevoir de coté dans une div l'id ou le nom correspondant au membre,

la deuxième page c'est la page php qui recois la requete de l'ajax et retourne le resultat du msql pour afficher dans la div.

<?php
header('Content-Type: text/html; charset=ISO-8859-1');

 include('config.php');
  
  session_start();
/* $id_user=$_SESSION['id_user'];


*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>online</title>
<script type="text/javascript">

function startchat() {
  
  if (window.XMLHttpRequest){
    // code for IE7+, Firefox, Chrome, Opera, Safari
    http=new XMLHttpRequest();
  } else { // code for IE6, IE5
    http=new ActiveXObject("Microsoft.XMLHTTP");
  }
  http.onreadystatechange=function(){
    if (http.readyState==4 )
 
 {
  if( http.status==200) 
  {
  
      document.getElementById("cibles").innerHTML=http.responseText;
 return false;
  }
    }
  }
 var id_user = encodeURIComponent(document.getElementById("id_user").value);
 http.open("GET","traitement_chat_with.php?id_user="+id_user,true);

  http.send();
}
</script> 

</head>

<body>

<?php
$id_user = (isset($_GET["id_user"])) ? $_GET["id_user"] : NULL;

 $reponse=mysql_query("SELECT * FROM users WHERE id_user='$id_user'");  
   
// On se déconnecte de MySQL

if ($donnees = mysql_fetch_array($reponse))
{
?>
 
<p><strong><?php echo $donnees['nom']; ?></strong></p>
 
<?php
}
// Fin de la boucle, le script est terminé !
?>

<div id="cibles"> je recois l'id </div>

</body>
</html>


------------------------------------------------------

<?php
header('Content-Type: text/html; charset=ISO-8859-1');

 include('config.php');
  
  session_start();
/* $id_user=$_SESSION['id_user'];


*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>online</title>
</head>

<body>

<?php
$id_user = (isset($_GET["id_user"])) ? $_GET["id_user"] : NULL;

 $reponse=mysql_query("SELECT * FROM users WHERE id_user='$id_user'");  
   
// On se déconnecte de MySQL

if ($donnees = mysql_fetch_array($reponse))
{
?>
 
<p><strong><?php echo $donnees['nom']; ?></strong></p>
 

 
<?php
}
// Fin de la boucle, le script est terminé !
?></body>
</html>



EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

1 réponse

jordane45 Messages postés 38350 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 26 décembre 2024 4 719
22 août 2015 à 23:48
Bonjour,


Je ne comprend pas bien....
Visiblement .. ton script ajax (côté javascript) récupère l'id_user que tu souhaites afficher...
 var id_user = encodeURIComponent(document.getElementById("id_user").value);

... hors... je ne trouve nul part dans ton code.. d'élément html dont l'id serait : 'id_user'.

... ni même la boucle qui te permet d'afficher la liste de tes utilisateurs connectés.....
Il nous faut donc le code HTML complet pour qu'on puisse t'aider !

PS : Merci à l'avenir de penser à utiliser les balises de code :
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

0