11544 sujets

JavaScript, DOM et API Web HTML5

Je ne suis pas sûr de la faisabilité de la chose Smiley smile

Quand je clique sur un bouton de ma page j'effectue l'action suivante:
$.ajax({
type: "POST",
url: "index.php?module=pages&action=afficher_page&id=<?php echo $_GET['id']; ?>", 
data:"vote="+vote,
success: function(){
alert("Vote done");
}

Ensuite, la page ciblée par l'url reçoit ma variable POST pour traiter le vote :

<?php   
// I get the timestamp of the last user's vote
list($last_timestamp) = get_last_timestamp($_SESSION['id'], $_GET['id']);
// I get the server timestamp
$timestamp_click=time();
if($timestamp_click-$last_timestamp > $time_limit){ 
   $authorization_vote=false;
}else{
    $authorization_vote=true;
}

Comment faire pour récupérer et envoyer $autorisation_vote à ajax ou jquery pour prévenir le visiteur que son vote n'a pas eu lieu ? J'ai entendu parler de callback mais pas réussi à le mettre en place. Personnellement, comment vous vous y prendriez ?
Modifié par Tchernobyl (25 Aug 2011 - 20:55)
Salut,

Le mieux est d'utiliser une valeur 1 pour true et 0 pour false.
Ensuite dans la page PHP appelée par ajax, tu fais un echo de ta variable.

Du côté jQuery (javascript) tu récupères ce que tu as écris dans la page PHP de la manière suivante :
$.ajax({
   type: "POST",
   url: "index.php?module=pages&action=afficher_page&id=<?php echo $_GET['id']; ?>", 
   data:"vote="+vote,
   success: function(msg){
      alert(msg); // ICI est la valeur écrite dans le fichier php
   }
Salut,

J'ai fait exactement ce que tu me conseilles (remplacer les booléens par 0 ou 1, modifier ma fonction ajax), mais le alert m'affiche le tout code html de ma page. Comment ça se fait ?
Modifié par Tchernobyl (26 Aug 2011 - 22:18)
Pour utiliser du code PHP dans ta page... celle-ci doit être en .php.

En passant, je te recommande fortement de passer plutôt par un retour JSON. Des classes existent, même dans le core php: http://php.net/json
Plus propre et carré, même si potentiellement plus lourd. De très peu.