我在CakePhp2.4.5-中第一次使用$ .ajax,我在stackoverflow上阅读了很多文章,并在w3schools和jquery网站上进行了其他研究,但无法理解应该如何解决我的问题。
我想从第一视图index.ctp向控制器发送数据
$.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'); }}
在我的第二个视图client.ctp中。
if(isset($ajaxTest)){ echo $ajaxTest;}else{ echo 'ajaxTest not Set.';}
问题。我总是在我的Client.ctp视图“ ajaxTest not Set”中得到味精。
我究竟做错了什么 ?或如何做?谢谢
最佳答案
我认为您的问题出在网址中,因为“ 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