我有以下问题:在cakaphp中不再建议使用jshelper,使用正常的javascript。
<?php
$this->Js->get('#PostCategoryId')->event('change',
$this->Js->request(array(
'controller'=>'subcategories',
'action'=>'getByCategory'
), array(
'update'=>'#PostSubcategoryId',
'async' => true,
'method' => 'post',
'dataExpression'=>true,
'data'=> $this->Js->serializeForm(array(
'isForm' => true,
'inline' => true
))
))
);
?>
我不知道如何在js中执行cake controller(不使用jshelper):
$this->Js->request(array(
'controller'=>'subcategories',
通常在核心php中,我会这样做:
$("select#category").change(function(){
var id = $("select#category option:selected").attr('value');
$.post("select_type.php", {id:id}, function(data){//select_type.php is the "controller"
$("select#type").html(data);
});
});
但是如何在javascript(jquery)中使用控制器?我不确定但如果我这样做会有效:
$.post("posts/subcategories/getByCategory", {id:id}, function(data){
答案 0 :(得分:1)
你可以使用htmlhelper获取这样的url然后它将是一个普通的jquery调用。
var url = <?php
echo $this->Html->url(array(
"controller" => "posts",
"action" => "view"
));
?>;
http://book.cakephp.org/2.0/en/core-libraries/helpers/html.html#HtmlHelper::url