CakePHP Controller 中的 JavaScript

标签 javascript jquery ajax cakephp

在我的 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/

相关文章:

ajax - 在 AJAX 表单加载的文本区域中使用 "Updated WMD Editor"

ajax - 按下后退时,Chrome 使用 ajax 缓存版本

javascript - Bootstrap datepicker 即使有功能也没有显示

javascript - 如何在 Mongoose 中验证电子邮件

javascript - 我如何将可观察对象应用到复选框以验证它是否被选中,从而能够重新加载我的应用程序页面?

javascript - 如何将 React Context 中的值传递给 Redux-Saga 函数?

jquery - 跨浏览器 css 样式建议

javascript - C3.js - 嵌套的 JSON 对象,如何访问和加载数据?

javascript - 了解代码中使用的 Javascript 语法

javascript - JavaScript 的 ajax 错误