我知道这应该是显而易见的,但我找不到任何有用或在互联网上更新。如何用cakePHP执行ajax请求?
我试图执行一个请求与AJAX获取视图内容以及从CakePHP控制器执行的JS代码。
请求为:
$.ajax({
url: '/alarm/fetchGadgetsComponent',
type: "POST",
cache: false,
dataType: 'json',
success: function (data) {
console.log(data);
}
});
和PHP类看起来是这样的:
class AlarmController extends AppController {
public $uses = false;
public $components = array('RequestHandler');
public function index() {
}
public function fetchGadgetsComponent()
{
if ($this->request->is('Ajax'))
{
$this->autoRender = false;
$this->layout = 'ajax';
$html = $this->render('ajax\widgetsPanel');
$js = $this->render('ajax\widgetsPanel.js');
echo json_encode(array('html' => $html,'js' => $js));
}
}
}
首先,第一渲染只是渲染它在屏幕上,而不是到$html
变量。 其次,我如何用不同的方法获取js文件? (渲染方法显然不是这个意思,因为它搜索.ctp文件) 以及如何将它们解析为一个json表达式?
谢谢
你为什么试图在json中发送JavaScript文件的内容?无论你想要做什么,我怀疑最好采取不同的方式。但是,如果绝对必要,则可以将JavaScript文件的内容放在.ctp文件中,然后使用$ this-> render()。 – Kai