Tôi mới dùng CakePHP nhưng gần như đang bỏ bằng cách sử dụng nó do không có khả năng nhận jQuery để làm việc với nó.Không may mắn khi cố gắng sử dụng JQuery với CakePHP 1.3
Tôi đang sử dụng CakePHP 1.3 và vì vậy, những người trợ giúp Html và Js đã tạo Javascript và Ajax thừa nhưng tôi không thể tìm thấy bất kỳ tài liệu trợ giúp/api nào về cách sử dụng Js là đủ.
Tất cả những gì tôi đang cố làm trước hết là gửi một số dữ liệu đến CakePHP với jQuery và sau đó lấy lại một số dữ liệu vào jQuery và cảnh báo() nó. Đối với một số lý do này chỉ là không làm việc. Đây là mã của tôi:
test.js
$('.social').click(function()
{
$.ajax({
type: 'POST',
url: '/activities/add_activity',
data: 'type=social',
dataType: 'json',
success: function(data)
{
alert(data);
},
error: function()
{
alert('wut');
}
});
});
activities_controller.php
function add_activity()
{
if($this->RequestHandler->isAjax())
{
$this->autoRender = false;
$this->autoLayout = false;
$this->header('Content-Type: application/json');
echo json_encode(array('result'=>'hello');
return;
}
}
Mỗi lần tôi nhấp vào nút với class = 'xã hội' tôi nhận được cảnh báo "wut" có nghĩa là lỗi.
Tôi có thành phần RequestHandler và các trình trợ giúp Javascript, Js và Ajax được bao gồm trong activity_controller.php của mình.
Ngoài ra, test.js và jquery.js được liên kết bằng cách sử dụng html-> script(); trong default.ctp và tất cả các công cụ jQuery khác đang hoạt động nên không phải vậy.
Tôi cũng đã có này trong beforeFilter của tôi() cho activities_controller.php:
if($this->RequestHandler->isAjax())
{
Configure::write('debug',0);
}
parent::beforeFilter();
Bất cứ ý tưởng gì là sai? Nó là một điều jQuery hoặc một điều cakePHP? Hoặc cả hai?
Cảm ơn trước,
Infinitifizz
T.B.
Tôi chưa bao giờ thực hiện AJAX trong jQuery trước đây vì vậy có thể đó là điều gì đó liên quan đến điều đó đang rối tung lên, tôi đã từng thực hiện AJAX javascript đơn giản.
Đây là một trong những thời điểm thực sự hữu ích khi gỡ lỗi được bật - cụ thể ở mức "1" trong trường hợp có lỗi PHP. Hãy thử kích hoạt mức đó cho các yêu cầu ajax và xem liệu có bất cứ điều gì được báo cáo trong bản ghi Bánh của bạn ('/ app/tmp/logs/*') hay không. –
Hãy thử bao gồm điều này trong phương pháp bánh của bạn: $ this-> log ('Một thông báo gỡ lỗi.', LOG_DEBUG); để xem liệu phương pháp có đang được gọi hay không. Kiểm tra đầu ra trong app/tmp/logs/debug.log Lưu ý rằng bạn có thể chuyển các biến - ngay cả các mảng thay cho chuỗi tin nhắn. – Leo
Ngoài ra, hãy sử dụng Firebug trong Firefox để theo dõi hoạt động mạng (trên tab mạng). – Leo