вызов метода контроллера codeigniter из jquery - PullRequest
2 голосов
/ 30 июня 2011

Я хотел вызвать метод контроллера codeigniter из jquery, на данный момент я пытаюсь что-то вроде этого, но это не работает, может кто-нибудь помочь мне с этим

$.ajax({type: "POST", url:"site/controller/method/",

                  success: function(){
                      alert("success");
                  },

                  error: function(xhr, textStatus, error){
                              alert(xhr.statusText);
                              alert(textStatus);
                              alert(error);
                          }

               });

Ответы [ 4 ]

3 голосов
/ 30 июня 2011

Я сам использую CI и обнаружил, что мне нужно указывать непосредственно на файл при обработке запросов AJAX, и, если необходимо, выдвигать некоторые переменные вместе с ним.

$.ajax({
    type: "POST",
    url: "system/application/views/ajax.php",
    data: "key=value",
    success: function(){ alert("success"); },
    error: function(xhr, textStatus, error){
        alert(xhr.statusText);
        alert(textStatus);
        alert(error);
     }
});
1 голос
/ 30 июня 2011

Ваш вопрос очень расплывчатый: вы получили 404? Вы получили ошибку JavaScript? В чем была проблема?

Если у вас есть 404 ошибки, самый простой способ выполнить эту работу - проверить URL-адрес в строке местоположения вашего браузера: любой URL, который вы можете открыть в строке местоположения браузера, можно скопировать в javascript и, безусловно, будет работать. Не должно быть различий на стороне воспламенителя кода между URL-адресами, которые вызываются из строки адреса браузера или из якоря, и URL-адресами, которые вызываются из jquery post или get или ajax.

Я бы порекомендовал использовать Firebug , чтобы посмотреть на активность, происходящую под капотом: это может упростить определение этих ошибок для вас.

0 голосов
/ 26 сентября 2012

Попробуйте это

var base_url = 'ваш базовый URL;

$.post(base_url+"/controller/function", {'param1': x,'param2':y}, function(data){

        if(data.length >0) {

            //do whatever you want

        }
    });
0 голосов
/ 30 июня 2011

Я сделал контроллер под названием ajax, где у меня есть все мои методы axaj. И вернуть вещи в кодировке JSON.

JQuery вещи:

    $.post("ajax/stuff", function(data){
    alert(data.some_data); // John
 }, "json");

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

public function stuff()
{
    $response_array = array();
    $response_array['some_data'] = 'lorem ipsum';
    //$response_array['html'] = $this->load->view('popbox_error', $data, true);

    $data['json'] = json_encode($response_array);
    $this->load->view('json_response', $data);
}

json view:

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