публиковать данные ajax в PHP и возвращать данные - PullRequest
10 голосов
/ 08 июля 2011

Как я могу опубликовать некоторые данные ajax в функции контроллера и получить их обратно?Поскольку я хочу опубликовать одно целое число в функции и получить другое целое число (общее количество голосов за элемент, идентификатор которого опубликован), и в случае успеха я хочу повторить этот подсчет голосов.Я не знаю, как я могу опубликовать «идентификатор» в функции контроллера.Пожалуйста, смотрите мой код:

//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.

                }
            });

Ответы [ 3 ]

17 голосов
/ 08 июля 2011
 $.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

                }
            });

в контроллере

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

Разъяснение

Я думаю, что вы путаете

{data:the_id}

с

success:function(data){

оба data отличаются для вашей собственной ясности, вы можете изменить его как

success:function(vote_count){
$(span#someId).html(vote_count);
3 голосов
/ 08 июля 2011

Так как выглядит count_votes? Это сценарий? Все, что вы хотите получить от вызова ajax, может быть получено с помощью простого эха (конечно, вы можете использовать JSON или xml, но для этого простого примера вам просто нужно вывести что-то в count_votes.php, например:

$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;

Это просто псевдокод, но он должен дать вам представление. То, что вы когда-либо повторяете из count_votes, будет тем, что возвращается к «данным» в вашем вызове ajax.

3 голосов
/ 08 июля 2011

Для JS попробуйте

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

и

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

в PHP

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...