salut tout le monde
j'ai un petit probleme avec mon AJAX,
mon projet c'est de faire un petite étoile qui, a la facon de gmail, s'allume quand on clique dessus et enregistre le post dans nos favoris. On peut ensuite recliquer dessus pour la faire s'éteindre.
dans ma page index j'ai inclus dans le head la page default.js
default.js :j'appel le fichier ajax.phpfunction blogs_actus(starred,id)
{
if(window.XMLHttpRequest) // Firefox
{
var xhr_object = new XMLHttpRequest();
}
else if(window.ActiveXObject) // Internet Explorer
{
var xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
}
else
{ // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
var data = "id="+id+"&starred="+starred;
xhr_object.onreadystatechange = function()
{
if(xhr_object.readyState == 4)
{
if(starred == 0)
{
document.getElementById(star).style.backgroundImage = 'url(images/starred.jpg)';
}
else
{
document.getElementById(star).style.backgroundImage = 'url(images/star.jpg)';
}
}
}
xhr_object.open("POST", "ajax.php", true);
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr_object.send(data);
}
et en même temps. je change l'image de l'étoile en fonction de son image actuelle.
mon fichier ajax.php est le suivant :Donc ici, je recois id et starred.<?
header('Content-type: text/html; charset=iso-8859-1');
session_start();
$sonid = $_SESSION['sonid'];
include('conect.php');
if(is_numeric($id) && is_numeric($starred))
{
if($starred == 1)
{
mysql_query("DELETE FROM rank WHERE id_video=$id AND id_pseudo = $sonid");
$res = mysql_query("SELECT rank FROM video WHERE id=$id");
$data = mysql_fetch_array($res);
$rank = $data['rank'] - 1;
mysql_query("UPDATE video SET rank=$rank WHERE id=$id");
}
else
{
mysql_query("INSERTO INTO rank VALUES('',$id,$sonid)");
$res = mysql_query("SELECT rank FROM video WHERE id=$id");
$data = mysql_fetch_array($res);
$rank = $data['rank'] + 1;
mysql_query("UPDATE video SET rank=$rank WHERE id=$id");
}
}
?>
Si le visiteur viens d'activer l'étoile je rajoute une étoile pour la vidéo en question.
sinon l'inverse :o
Si je poste ce thread c'est que ce code ne marche pas
si qq y comprend qq chose ca serait super
et en plus, même si vous n'arrivez pas a trouver la solution à cette énigme digne d'ouverture facile. vous pouvez critiquer mon code pcq celui ci est un peu hasardeu.
merci ^^
Partager