[AJAX] passer plusieurs variables et renvoyer du html
Bonjour à tous,
Je découvre l'Ajax, car j'ai enfin un peu le temps de m'y mettre, et je souhaiterais comme exercice faire un truc tout simple :
J'ai un lien html qui affiche le genre d'un membre : homme ou femme
Si on clique sur ce lien et qu'on est un homme ca le change en femme et vice et versa.
Aussi lorsque je clique sur le lien, ca met à jour la base de données, en envoyant deux variables : l'ID du membre et le genre
Voici ce que j'ai fait pour l'instant :
Dans mon head :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| <script type="text/javascript">
function getXhr(){
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject){ // Internet Explorer
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
function genre(){
var xhr = getXhr()
// On défini ce qu'on va faire quand on aura la réponse
xhr.onreadystatechange = function(){
// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
if(xhr.readyState == 4 && xhr.status == 200){
alert(xhr.responseText);
}
}
xhr.open("GET","ajax_membre_genre.inc.php?",true);
xhr.send(null);
}
</script> |
mon html :
Code:
1 2
| <div id="contenu_genre" style="float:left;">
<a href="#" onclick="genre();" class="lienGras">Homme</a></div> |
et mon php :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| $sSql="
UPDATE
matable
SET
genre= ?
WHERE
id_membre = ?
";
$oSth = $GLOBALS['BDD']->prepare($sSql);
$oSth->execute(array($_GET['genre'], $_GET['id_membre']));
switch($_GET['genre']){
case 0 :
// le membre est un homme
echo '<a href="#" onclick="genre();" class="lienPetitNoir">homme</a>';
break;
case 1 :
// le membre est une femme
echo '<a href="#" onclick="genre();" class="lienGras">femme</a>';
break;
} |
le php fnctionne, mais ce que je n'arrive pas a mettre en place c'est la liaison entre ces éléments, j'ai cherché un peu partout sur le forum, mais n'est pas trouvé d'explications.
Merci de votre aide