在我的 CakePHP View 中,我使用 jQuery 调用 Controller 中的方法:
function placeSensors(nk) {
$.ajax({
type:'post',
url:'/myapp/maps/placeSensors/' + nk,
success: function(r) {
if(r.status = 'ok') {
}
}
});
}
Controller 中的 JS 定义为 ie.:
class MapsController extends AppController {
var $name = 'Maps';
var $helpers = array('Js');
var $uses = array('Measurings', 'Maps');
var $components = array('RequestHandler'); // added later, but still the same
function index( $id = null, $value = null ) {
$code = '';
?>
<script type="text/javascript">
alert('Hello!');
</script>
<?php
return $code;
}
因此,使用简单的代码,我无法在网络表单上收到警报消息。我在其他一些项目中使用的非常简单的代码,它在那里工作,并且由于某种原因,这在这个项目上不起作用......
我真的被这个问题困扰了,你能帮帮我吗......
更新:这是我通过 Firebug 得到的回复:
<script type="text/javascript">
alert('Hello!');
</script>
最佳答案
您正在尝试将客户端应查看的代码(javascript)放置在 Controller 内。 Controller 用于业务逻辑,客户端看不到。
将您的 javascript 放入/webroot/js/目录中的 javascript 文件中。
为了与 ajax 交互,请告诉您的 Controller 使用 RequestHandler组件来确定它们是否被 ajax 调用。从那里您可以返回简单的值,或者返回 json 或 xml View 。
如果这听起来很复杂,现在不用担心,只需从您需要的简单开始,慢慢构建您的应用程序即可。
关于CakePHP Controller 中的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7286378/