Сообщение AJAX не работает с использованием jQuery

0

У меня есть этот код для моего элемента кнопки

<script> 
    $(document).on("click","#ajax-button", function () {
            var dataToSend = "balblabla";
                    $.post("http://example.com/admin/sitemap/get_categories", dataToSend, function(data) {
                      alert(data);
                 });
        });
    });
</script>

и этот код в моем контроллере:

public function getcategories()
{
    header('Content-Type: application/x-json; charset=utf-8');
    echo(json_encode("test out"));
}

Но он вообще не работает ((

Что я делаю не так? jQuery загружается раньше. Это не проблема.

  • 0
    not working at all - опиши ЭТО. Сообщения об ошибках? Странное поведение?
  • 0
    любая ошибка в консоли вашего браузера
Показать ещё 3 комментария
Теги:

3 ответа

0

В дополнение к моему комментарию:

В общем, ваш URL должен содержать path-to-controller/controller (для вызова метода индекса) or path-to-controller/method для вызова некоторого специального метода контроллера.

В этом примере:

  • someController - ваш контроллер
  • someMethod - это метод someController, который вы вызываете

$.post('someController/someMethod', { foo: "bar"//data to send }, function(data){ alert(data);//response });

и контроллер PHP

<?php
class someController {
    public function someMethod(){
        echo "hello from someMethod";
    }
}
?>
0

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

Ваш $.post должен быть $.getJSON, потому что $.post shortcut не сообщает jQuery, что он ожидает json в качестве ответа.

$.getJSON('path/to/controller/method', {data: data, to: to, send: send}, function(data)
{
   alert(data);
});

Часть PHP

public function getcategories()
{
    $data = array();
    $data['foo'] = 'bar';
    //best give json_encode an array as input so you can do data.foo in js part

    echo json_encode($data);
}
0

вы ожидаете данные json от простого простого почтового запроса, чтобы он не получал данные, пожалуйста, измените свой запрос на

var dataToSend = {};
$.getJSON("http://example.com/admin/sitemap/get_categories", dataToSend, function(data) {
    alert(data);
});

или вы можете попробовать это для лучшего понимания

$.ajax({
    url: "page.php",
    dataType: 'json',
    data: dataToSend,
    success: function(data) {
        alert(data);
    },
    error: function(data) {
    }
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню