Soy nuevo en cakePHP pero estoy a punto de dejar de usarlo debido a mi incapacidad para hacer que jQuery trabaje con él.No tuve suerte al intentar usar JQuery con CakePHP 1.3
Estoy usando CakePHP 1.3 y pensé que los helpers Html y Js habían hecho que Javascript y Ajax fueran redundantes, pero realmente no puedo encontrar ninguna documentación de ayuda/api sobre cómo usar Js que sea suficiente.
Todo lo que estoy tratando de hacer ante todo es enviar algunos datos a cakePHP con jQuery y luego recuperar algunos datos en jQuery y alertarlos(). Por alguna razón esto simplemente no está funcionando. Aquí está mi código:
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;
}
}
Cada vez que haga clic en el botón con class = 'social' tengo la alerta "Wut", que significa error.
Tengo el componente RequestHandler y Javascript, Js y Ajax helpers incluidos en my activities_controller.php.
Además, test.js y jquery.js se vinculan utilizando html-> script(); en default.ctp y todas las demás cosas de jQuery funcionan, así que no es eso.
También tengo esto en mi beforeFilter() para activities_controller.php:
if($this->RequestHandler->isAjax())
{
Configure::write('debug',0);
}
parent::beforeFilter();
Alguna idea de lo que está mal? ¿Es algo de jQuery o algo de CakePHP? ¿O ambos?
Gracias de antemano,
Infinitifizz
P. S.
Nunca he hecho AJAX en jQuery antes, así que tal vez tenga algo que ver con eso que está estropeando, solo he hecho javascript AJAX simple.
Este es uno de esos momentos en los que sería realmente útil tener la depuración activada, específicamente a un nivel de "1" en caso de que haya errores de PHP. Intente habilitar ese nivel para solicitudes ajax y vea si se informa algo en los registros de Cake ('/ app/tmp/logs/*'). –
Intente incluir esto en su método de torta: $ this-> log ('Un mensaje de depuración', LOG_DEBUG); para ver si el método está siendo llamado. Compruebe la salida en app/tmp/logs/debug.log Tenga en cuenta que puede pasar variables, incluso matrices en lugar de la cadena del mensaje. – Leo
Además, usa Firebug en Firefox para monitorear la actividad de la red (en la pestaña de red). – Leo