Ajax + envoie de variable avec lien

Fermé
msakeniii - Modifié par kazma le 13/05/2014 à 18:48
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 12 mai 2010 à 18:00
j'ai un problème je veut envoyé une variable a l'aide d'un lien sauf que j'utilise Ajax avec se lien donc la page s'ouvre dans l'emplacement que je veu sauf que maintenant la variable n'est plu reconnu dans la page

function load_page(select) {
 var xhr2 = new_xhr();//On crée un nouvel objet XMLHttpRequest
 xhr2.onreadystatechange = function(){
  if ( xhr2.readyState == 4 ){//Actions executées une fois le chargement fini
   if(xhr2.status  != 200){//Message si il se preoduit une erreur
    document.getElementById("main").innerHTML ="Error code " + xhr2.status;
   } else {//On met le contenu du fichier externe dans la div "content"
    function bla () {
     document.getElementById("main").innerHTML = xhr2.responseText;
    }
    setTimeout(bla,1000);
   }
  } else {//Message affiché pendant le chargement
   document.getElementById("main").innerHTML = "<center><br><br><b>Chargement en cours ...</b><center><img src='wait.gif' alt=''/>";
  }
 }
 xhr2.open("GET", select.split('?')[1]+".php", true);//Appel du fichier externe
 xhr2.send(null);
}


page affichier avec Ajax

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?php
 mysql_connect("localhost", "root", "") or die(mysql_error()); 
 mysql_select_db("sgr") or die(mysql_error()); 
 $req="select * from reclamation where type_reclam IN ('modification','supression') ";
 $a=mysql_query($req);
 $n=mysql_num_rows($a);
 echo'<table><tr><td>reférence</td><td>urgence</td><td>type</td><td>accéder</td></tr>';
 for($i=0;$i<=$n;$i++)
 {$l=mysql_fetch_array($a);
 echo"<tr><td>$l[0]</td><td>$l[2]</td><td>$l[4]</td><td><a href='?a?ref=$l[0]' onclick='load_page(this.href);return false;'><img scr=a.jpg width=30% height=30%></a></td></tr>";
 }
 echo'</table>';
 ?>

donc je veut envoyer la variable ref a la page a.php

3 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 mai 2010 à 16:44
si tu mets xhr2.send(null) tu n'envoie rien au script php

il faut mettre:

xhr2.send(select.split('?')[2]);


et dans le script a.php tu recuperes par
$ref=$_GET['ref'];
1
j'ai bien fait comme tu m'as dit mais la variable je ne peut pas la récupéré

<a href='?a?ref=$l[0]' onclick='load_page(this.href);return false;'>
erreur
Notice: Undefined index: ref in C:\Program Files (x86)\EasyPHP 2.0b1\www\rep\a.php on line 5
reférence urgence type

$ref=$_GET['ref'];
0
Salut !

Soit, tu l'envois dans le nom de la page :

"page.php?ref="+ref

Soit, tu l'envois par post, de ce type :

XHR.send("ref = "+ref);

Mais vérifie, je n'en suis pas sur.
Bye;)
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
12 mai 2010 à 18:00
l'argument passé lors de l'appel de la fonction ajax:

this.href contient ?a?ref=$l[0]

donc le split[2] doit contenir ref=$l[0]

pour le verifier: met une alert

.....
alert("Valeur envoyee: "+select.split('?')[2]);
xhr2.send(select.split('?')[2]);


et mets dans a.php

if(isset($_GET['ref']){
     $ref=$_GET['ref'];
}
0