Cela devient vraiment déroutant maintenant ... Mise à jour d'une base de données mysql sans quitter la page .... J'ai 3 bits de code. Le javascript dans les balises de tête, le bouton d'action dans le corps et le code à exécuter sur une autre page. Voici les trois sections:Javascript lien, ajax, jquery, curseur est un éditeur de texte pas une main/doigt et même si le code a fonctionné, il renvoie toujours le résultat de l'erreur
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">
function addItemToUsersList(itemId)
{
$.ajax({
'url': 'member-bucketadd-exec.php',
'type': 'GET',
'dataType': 'json',
'data': {itemid: itemId},
'success': function(data)
{
if(data.status)
{
if(data.added)
{
$("span#success"+itemId).attr("innerHTML","Item added to your personal list");
alert("Item added to your list!");
}
else
{
$("span#success"+itemId).attr("innerHTML","This item is already on your list");
alert("This item is already on your list!");
}
}
},
beforeSend: function()
{
$("span#success"+itemId).attr("innerHTML","Adding item to your bucketlist...");
}
,'error': function(data)
{
// what happens if the request fails.
$("span#success"+itemId).attr("innerHTML","An error occureed");
alert("On your list!");
}
});
}
</script>
Le bouton d'action ...
<a onclick="addItemToUsersList(<?php echo $itemid ; ?>)">Add<img src='images/plus-green.png' /> </a>
Et le code qui est exécuté sur l'autre url ...
<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL);
$bucketlist=MYSQL_QUERY("SELECT * FROM membersbuckets where userid = $userid AND bucketid = $bucketid")
or die(mysql_error());
$bucketlist=mysql_fetch_array($bucketlist) ;
if($bucketlist < 1)
{
mysql_query("INSERT INTO membersbuckets (memberbucketid, userid, bucketid, complete)
VALUES ('', '$userid', '$bucketid', '0')");
return json_encode(array("status" => true, "added" => true));
}
else
{
return json_encode(array("status" => true, "added" => false));
}
?>
Il n'a pas d' si l'article est déjà sur la liste (comme il est censé vérifier seau < 1), ou pas sur la liste, je reçois toujours l'alerte ("Sur votre liste!"); , et aussi le lien/le bit du bouton d'activation, quand je le coche dessus je ne reçois pas la main/le doigt j'ai juste un curseur de texte !!
Je n'ai jamais utilisé jquery, ou ajax avant ce petit projet, donc je n'ai aucune idée de ce qu'il faut chercher pour voir ce qui est hors de propos. J'ai téléchargé firebug et testé avec ça mais je ne vois pas de problème/s. Quelqu'un peut-il aider?
Merci à tous et à tous! J'espère que vous pouvez aider.
bonjour il Dan, depuis « Sur votre liste!"est en alerte, la condition d'erreur est la réunion.Il ne signifie pas réellement si l'élément est dans la liste de l'utilisateur ou non.Pour déboguer, mettre' echo 'ici "; print_r ($ bucketlist); exit;' après '$ bucketlist = mysql_fetch_array ($ bucketlist); 'et vérifiez la section Response sous la console firebug pour cette requête ajax –
Merci pour votre réponse! (et tout le monde!) ... params = itemid \t 25. la section réponse est vide – Dan
J'ai ajouté le span id succès après le lien a href comme Thau noté sur son code et vérifié la réponse à nouveau et c'est ce que j'ai obtenu .... iciArray ( [0] => 284 [memberbucketid] => 284 [ 1] => 1 [id_utilisateur] => 1 [2] => 25 [bucketid] => 25 [3] => 0 [compléter] => 0 ) – Dan