XMLHttpRequest de GET à POST

djfayr Messages postés 3 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 13 mars 2010 - 11 mars 2010 à 16:35
antoinesyma Messages postés 5 Date d'inscription mardi 13 septembre 2011 Statut Membre Dernière intervention 11 octobre 2011 - 11 oct. 2011 à 12:25
Bonjour,
je sollicite votre aide pour un petit truc tout bête, je voudrait juste changer la méthode de mon script XMLHttp Request qui fonctionne très bien en GET.
je voudrait le mettre en POST mais bizarrement je n'y arrive pas j'ai essayer plein de choses.
voici le script en question : (il s'agit d'un menu déroulant qui change le contenu d'une div par exemple, ce contenu récupéré d'une base de donnée)

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)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}



et le code html du menu est celui-ci :

<head>
<script type="text/javascript" src="mon_code_JS.js"></script>
</head>


<form>
<select name="users"  onchange="showUser(this.value)">

<option value="1">toto Matata</option>
<option value="2">coco chanel</option>
<option value="3">tonton kouchnère</option>
<option value="4">Michel clackson</option>

</select>
</form>


ici va apparaitre les données récupérés de la BDD






merci pour l'aide

4 réponses

cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
12 mars 2010 à 00:17
Bonsoir,

var url="getuser.php";
url=url+"?q="+str;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);


devient

var url = "getuser.php";
var params = "q="+str+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmthttp.setRequestHeader("Content-length", params.length);
xmlhttp.send(params);


devrait fonctionner

bonne nuit
0
djfayr Messages postés 3 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 13 mars 2010
13 mars 2010 à 07:07
salut
merci pour ta réponse
j'ai changer ce bout de code mais ca marche toujours pas
0
djfayr Messages postés 3 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 13 mars 2010
13 mars 2010 à 07:15
j'envoie le contenu du fichier php qui interprète la requête
ca peu aider pour connaitre la variable a envoyer
la variable a envoyer c'est le nombre d'entrées ( de ligne ) de la table mysql
$q=$_GET["q"];

$con = mysql_connect('localhost', 'root', 'root');
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("ajax_demo", $con);

$sql="SELECT count(*) FROM xxxx WHERE yyyyy = '".$q."'";

$result = mysql_query($sql);



while($row = mysql_fetch_array($result))
  {
   echo    $row['0']  ;
  }
 

mysql_close($con);


0
antoinesyma Messages postés 5 Date d'inscription mardi 13 septembre 2011 Statut Membre Dernière intervention 11 octobre 2011
11 oct. 2011 à 12:25
bjr cas urgent s'il vous plait comment envoyer des variables par la méthode get par un formulaire tout en utilisant méthod=post,c-a-d je veux recupérer la valeur de mes input par post et d'autre paramètre par get
0