Проблема переменной Ajax Codeigniter - PullRequest
1 голос
/ 02 февраля 2011

У меня есть вопрос, и я не знаю, размещаю ли я его в нужном месте на форуме.Я пытаюсь сделать форму с Ajax, чтобы посчитать мои клики через Ajax.Но проблема в том, что каждый раз, когда я делаю клик, я всегда получаю количество кликов как 1.

Вот фрагмент кода, объясненный:

В JavaScript из представления

$("#click").click(function(){    
            $.ajax({
                type: "POST",
                url: bseUrl+"counter/incCount",
                data: click,
                success: function(html){
                    alert(html);
                }
            });
        });

В сообщении (html) должно отображаться общее количество кликов с сервера;

контроллер счетчика

class Counter extends CI_Controller {

    //put your code here
    var $numClick;

    public function __construct() {
        parent::__construct();
        $this->numClick= 0;
    }

    public function Counter() {
        parent::__construct();
$this->numClick= 0;
    }

    public function incCount() {
        echo $this->numClick++;
    }

public function index() {
        //loadView
    }
}

Но каждыйКогда я нажимаю, я всегда получаю количество кликов равным 1. Почему я теряю переменное содержимое каждый раз?Кажется, что каждый раз, когда я делаю Ajax-вызов, я запускаю переменную.

Можете ли вы, ребята, помочь мне?

1 Ответ

1 голос
/ 02 февраля 2011

Вы переинициализируете счетчик каждый раз, когда вызываете функцию обработки кликов - почему? попробуйте сделать это так:

//init counter somewhere
var num_clicks= 0;
//increase counter and send request
$("#click").click(function(){
            num_clicks++;
            var click= "numberClick="+num_clicks;
            $.ajax({
                type: "POST",
                url: bseUrl+"counter/incCount",
                data: click,
                success: function(html){
                    alert(html);
                }
            });
        });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...