Ich bin neu in CakePHP, bin aber kurz davor, es zu beenden, weil ich jQuery nicht mehr damit arbeiten kann.Kein Glück bei der Verwendung von JQuery mit CakePHP 1.3
Ich benutze CakePHP 1.3 und dachte, die Html und Js Helfer hätten Javascript und Ajax überflüssig gemacht, aber ich kann keine Hilfe/API Dokumentation finden, wie man Js verwendet, die ausreichend ist.
Alles, was ich zuerst tun will, ist einige Daten zu cakePHP mit jQuery zu senden und dann einige Daten zurück in jQuery und alert() zu bekommen. Aus irgendeinem Grund funktioniert das einfach nicht. Hier ist mein Code:
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;
}
}
Jedes Mal, wenn ich auf die Schaltfläche mit Klasse Anklicken = 'sozialen' ich die Warnung "wut" erhalten, was bedeutet, Error.
Ich habe die RequestHandler-Komponente und Javascript, Js und Ajax-Helfer in meiner activities_controller.php enthalten.
Auch test.js und jquery.js ist mit html-> script() verknüpft; in default.ctp und alle anderen jQuery Sachen funktionieren, also ist es nicht so.
Ich habe dies auch in meinem before() für activities_controller.php bekam:
if($this->RequestHandler->isAjax())
{
Configure::write('debug',0);
}
parent::beforeFilter();
Irgendwelche Ideen, was falsch ist? Ist es eine jQuery-Sache oder eine cakePHP-Sache? Oder beides?
Vielen Dank im Voraus,
Infinitifizz
P. S.
Ich habe noch nie AJAX in jQuery gemacht, also ist es vielleicht etwas damit zu tun, dass es versaut, ich habe immer nur einfaches Javascript AJAX gemacht.
Dies ist eine der Zeiten, in denen es wirklich hilfreich wäre, Debug aktiviert zu haben - speziell auf eine Stufe von "1", wenn es PHP-Fehler gibt. Versuchen Sie, diese Stufe für Ajax-Anfragen zu aktivieren und sehen Sie, ob in Ihren Cake-Logs etwas gemeldet wird ('/ app/tmp/logs/*'). –
Versuchen Sie, dies in Ihre Cake-Methode aufzunehmen: $ this-> log ('Eine Debugging-Nachricht.', LOG_DEBUG); um zu sehen, ob die Methode aufgerufen wird. Überprüfen Sie die Ausgabe in app/tmp/logs/debug.log. Beachten Sie, dass Sie Variablen übergeben können - sogar Arrays anstelle der Nachrichtenzeichenfolge. – Leo
Verwenden Sie Firebug in Firefox, um die Netzwerkaktivität zu überwachen (auf der Registerkarte "net"). – Leo