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

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

Vespa
WRInaute impliqué
WRInaute impliqué
 
Messages: 341
Inscription: Lun Nov 17, 2003 9:41

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: 5220
Inscription: Mer Nov 23, 2005 10:38

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


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités