web-dev-qa-db-fra.com

publier des données ajax dans PHP et renvoyer les données

Comment puis-je publier des données ajax dans la fonction du contrôleur et les récupérer? Car je veux publier un entier dans la fonction, et obtenir un autre entier (nombre total de votes pour l'élément dont l'ID est publié), et en cas de succès, je veux faire écho au nombre de votes. Je ne sais pas comment puis-je poster le "id" à la fonction du contrôleur. Veuillez voir mon code:

//post this integet
the_id = $(this).attr('id'); 

        $.ajax({
            type: "POST",
            data: the_id,
            url: "http://localhost/test/index.php/data/count_votes",
            success: function(){
                //the controller function count_votes returns an integer.
                //echo that with the fade in here.

                }
            });
11
billa
 $.ajax({
            type: "POST",
            data: {data:the_id},
            url: "http://localhost/test/index.php/data/count_votes",
            success: function(data){
               //data will contain the vote count echoed by the controller i.e.  
                 "yourVoteCount"
              //then append the result where ever you want like
              $("span#votes_number").html(data); //data will be containing the vote count which you have echoed from the controller

                }
            });

dans le contrôleur

$data = $_POST['data'];  //$data will contain the_id
//do some processing
echo "yourVoteCount";

Clarification

je pense que vous confondez

{data:the_id}

avec

success:function(data){

les deux data sont différents pour votre propre clarté, vous pouvez le modifier comme

success:function(vote_count){
$(span#someId).html(vote_count);
22
Rafay

Pour le JS, essayez

data: {id: the_id}
...
success: function(data) {
        alert('the server returned ' + data;
    }

et

$the_id = intval($_POST['id']);

en PHP

4
Marc B

À quoi ressemble count_votes? Est-ce un script? Tout ce que vous souhaitez récupérer d'un appel ajax peut être récupéré à l'aide d'un écho simple (bien sûr, vous pouvez utiliser JSON ou xml, mais pour cet exemple simple, vous aurez juste besoin de sortir quelque chose dans count_votes.php comme:

$id = $_POST['id'];

function getVotes($id){
    // call your database here
    $query = ("SELECT votes FROM poll WHERE ID = $id");
    $result = @mysql_query($query);
    $row = mysql_fetch_row($result);

    return $row->votes;
}
$votes = getVotes($id);
echo $votes;

Ce n'est qu'un pseudocode, mais devrait vous donner l'idée. Quoi que vous fassiez écho de count_votes sera ce qui est retourné aux "données" dans votre appel ajax.

3
serialworm