Récupérer une variable supplémentaire dans un script en ajax

Vespa
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 346
Inscription: 17 Nov 2003

Récupérer une variable supplémentaire dans un script en ajax

Message le Mer Fév 25, 2009 13:21

J'ai un soucis que je vais vous exposer avec un script ajax ...

Trois fichiers :

Le premier : getuser.php

Code: Tout sélectionner
<?php
$q=$_GET["q"];
$userid=$_GET["userid"];
$con = mysql_connect('localhost', 'monuser', 'monmotdepasse');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}

mysql_select_db("basedetest", $con);


$sql="SELECT memberid, username, avatar FROM jos_comprofiler_members WHERE type = '".$q."' and accepted='1' and memberid=$user_id";

$result = mysql_query($sql);

echo "<table border='1'>
<tr>
<th>Pseudo</th>
<th>Avatar</th>

</tr>";

while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><a href=\"user=" . $row['memberid'] . "\">" . $row['username'] . "</td>";

  echo "</tr>";
}
echo "</table>";

mysql_close($con);
?>



Le second : selectuser.js

Code: Tout sélectionner
var xmlHttp;

function showUser(str)
{

xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url="getuser.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}

function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById("txtHint").innerHTML=xmlHttp.responseText;
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
//Internet Explorer
try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
}
return xmlHttp;
}


Le 3ème le formulaire :

Code: Tout sélectionner
<?php
echo"   <script language=\"javascript\" type=\"text/javascript\" src=\"selectuser.js\"></script>
<form>
Selectionner la cat&eacute;gorie :
<select name=\"users\" onchange=\"showUser(this.value)\">
<option value=\"aucun\">Votre choix</option>
<option value=\"Amie(s)\">Amie(s)</option>
<option value=\"Collègues\">Collègues</option>
<option value=\"Relation(s)\">Relation(s)</option>
</select>
<input type=\"hidden\" name=\"userid\" value=\"68\" /> 68
</form>

<p>
<div id=\"txtHint\"><b>Les membres de la categ s'afficheront ici.</b></div>
</p>";
?>



J'aimerai :

1) Récupérer la variable $userid provenant du formulaire dans mon fichier getuser.php (mais à cause du javascript je n'y arrive pas ...)

Comme vous pouvez le constater, le javascript est appelé depuis le onchange du select dans le formulaire mais je ne sais pas si je peux lui faire prendre également le $userid en même temps ou si faut appeler le javascript autrement ?

Je ne sais pas comment récupérer la variable $userid dans le javascript et la récupérer dans le fichier getuser.php ...

Merci pour votre aide :blush:


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 8578
Inscription: 23 Nov 2005

Re: Récupérer une variable supplémentaire dans un script en ajax

Message le Mer Fév 25, 2009 13:31

Bein il te suffit de passer, en paramètre de la fonction appelée dans ton onchange, la valeur contenu dans le champ userId.

Code: Tout sélectionner
onchange="showUser(this.value,document.getElementById('userId').value)"


Et de modifier le prototype de ta fonction JS et les traitements en conséquences.

Un conseil par contre : quitte à faire de l'Ajax, je te conseille de passer par un framework JS, moyen beaucoup plus souple de faire des accès aux éléments de ta page, de faire des requêtes HTTP, etc. Par exemple prototype


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité