У меня есть этот код для моего элемента кнопки
<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 загружается раньше. Это не проблема.
В дополнение к моему комментарию:
В общем, ваш URL должен содержать path-to-controller/controller
(для вызова метода индекса) or path-to-controller/method
для вызова некоторого специального метода контроллера.
В этом примере:
$.post('someController/someMethod', { foo: "bar"//data to send }, function(data){ alert(data);//response });
и контроллер PHP
<?php
class someController {
public function someMethod(){
echo "hello from someMethod";
}
}
?>
Попробуй это:
Ваш $.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);
}
вы ожидаете данные 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) {
}
});
not working at all
- опиши ЭТО. Сообщения об ошибках? Странное поведение?