我在CakePhp2.4.5中第一次使用$ .ajax-我在stackoverflow上阅读了很多帖子,并在w3schools和jquery网站上做过其他研究,但无法理解我应该如何解决我的问题。 我想从第一个视图index.ctp
向Controller发送数据 $.ajax({
type: 'POST',
url: 'meers/client',
datatype:'json',
cache: false,
data: {myVal:'Success!'},
success: function(){alert('AjaX Success')},
error: function(){alert('AjaX Failed')}
})
.done(function(){
alert('AjaX Done!');
});
提醒节目' AjaX成功'。
在我的控制器中我有
public function client(){
if($this->request->isAjax()){
$this->set('ajaxTest','Success');
}}
在我的SECOND视图client.ctp中我有。
if(isset($ajaxTest)){
echo $ajaxTest;
}else{
echo 'ajaxTest not Set.';
}
问题。我总是在我的Client.ctp视图中获得msg" ajaxTest not Set"。 我究竟做错了什么 ?或者怎么做?感谢
答案 0 :(得分:2)
我认为您的问题在网址中,因为“meers / client'在一条路线
$.ajax({
type: 'POST',
url: "<?php echo $this->Html->url(array('controller' => 'YourController','action' => 'YourAction')); ?>",
datatype:'json',
cache: false,
data: {myVal:'Success!'},
success: function(){alert('AjaX Success')},
error: function(){alert('AjaX Failed')}
})
.done(function(){
alert('AjaX Done!');
});
或者可以探测给路由器:
$.ajax({
type: 'POST',
url: "<?php echo Router::url(array('controller' => 'YourController', 'action' => 'YourAction'), true); ?>",
datatype:'json',
cache: false,
data: {myVal:'Success!'},
success: function(){alert('AjaX Success')},
error: function(){alert('AjaX Failed')}
})
.done(function(){
alert('AjaX Done!');
});
你可以看到其他例子:
http://www.dereuromark.de/2014/01/09/ajax-and-cakephp/
Making jquery ajax call from view to controller in cakephp 2.x