[AJAX] Simplement rafraichir une page avec un post
Bonjour
Pour un projet perso. j'ai envi d'essayé AJAX mais malgré le cour j'ai beaucoup de mal a comprendre.
Pour l'instant je transmet une valeur dans un $_post pour incrémenter la base de +1 (un like de plus)
Voilà le code que j'utilise :
Code:
1 2 3 4 5 6 7 8
| $page_texte .= '<form id="like" action="index.' . EXT . '?page=Article&id=' . $_GET['id'] . '" method="post"><input type="hidden" name="like" value="like" /></form><a href="#" onclick="document.getElementById(\'like\').submit()"><i class="icon-thumbs-up"></i></a> <strong>' . $row['article_like'] . '</strong> ';
if ( $row['article_like'] > 1 ) {
$page_texte .= 'Likes';
}
else {
$page_texte .= 'Like';
}
$page_texte .= '</small></blockquote>'; |
Ensuite sur LA MEME PAGE :
Code:
1 2 3 4 5 6 7
| if ( isset ( $_POST['like'] ) ) {
$sql = "UPDATE " . $database->pref . "article_article
SET article_like = article_like + 1
WHERE article_id = '" . $_GET['id'] . "';";
$database->Requete ( $sql ) or $database->Erreur ( __LINE__ , __FILE__ , $sql );
$page_texte .= '<script language=javascript>window.history.go(-1);</script>';
} |
Donc le rafraichissement ce fait par javascrip mais le soucis c'est que je réactualise la page entière.
Par rapport au http://siddh.developpez.com/articles/ajax/ je pense qu'il faut que j'utilse cette partie de code :
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
| 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
}
/**
* Méthode qui sera appelée sur le click du bouton
*/
function go(){
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.php",true);
xhr.send(null);
} |
Le soucis qui se pose a moi c'est sur cette partie de code :
Code:
1 2
| xhr.open("GET","ajax.php",true);
xhr.send(null); |
Comment faire vu que je travaille sur une seule page pour faire l'actualisation ?
Je ne sais pas si je résonne logiquement .... ?????
Merci