Cakephp 如何在javascript中编写代码

Cakephp 如何在javascript中编写代码,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我需要做一个DOM替换,如下所示: $("#target").html('<?php echo $html?>'); 当然,我需要某种转义,否则javascript引擎将在第一个crlf或quote处因语法问题而中断。在rails中,有一个简单的函数escape\u javascript,使它非常简单。cakephp中有类似的东西吗?我认为使用 $("#target").html('<?php echo $this->element("element_path"); ?

我需要做一个DOM替换,如下所示:

$("#target").html('<?php echo $html?>');
当然,我需要某种转义,否则javascript引擎将在第一个crlf或quote处因语法问题而中断。在rails中,有一个简单的函数
escape\u javascript
,使它非常简单。cakephp中有类似的东西吗?

我认为使用

$("#target").html('<?php echo $this->element("element_path"); ?>');
我的控制者呢

function loadHtml(){
    $this->layout = false;
}
以及函数app/view/my/load_html.ctp的视图:

<?php echo $this->element("element_path"); ?>

您可以使用

在视图文件中添加以下代码

$html = $this->requestAction('/tests/func_name');

echo $this->Html->scriptBlock('
    $("#target").html('. $this->Js->value($html) .');
');
在你的测试控制器里

public function func_name() {
    $this->layout = 'layout_name'; // The layout you want here for design.

    $this->render('/Elements/element_name'); // you can directly render the content of element by writing like this.
}

问题是一样的。它返回一个未被替换的html@VecchiaSpugna为什么在使用函数时要转义HTML?那没有任何意义。如果希望数据显示为文本,请改用。如果真的需要手动转义HTML,那么请签出。因为如果Jquery.HTML()参数是包含crlf的文本,javascript将break@VecchiaSpugna什么JavaScript?请用实际数据更新您的问题,即
#target
的标记和元素的内容。@VecchiaSpugna现在我知道了。。。备注中的ps请使用
@username
,以便通知您正在交谈的人,请参见Nice,但我不能使用
$this->Js
:未定义的属性视图::$Js可能是因为您没有包含Js助手。只需检查控制器和appcontroller中的
$helpers
属性,并将其包括在内。它可以工作!我认为JS和Javascript助手是一样的,但它们不可能重复
$html = $this->requestAction('/tests/func_name');

echo $this->Html->scriptBlock('
    $("#target").html('. $this->Js->value($html) .');
');
public function func_name() {
    $this->layout = 'layout_name'; // The layout you want here for design.

    $this->render('/Elements/element_name'); // you can directly render the content of element by writing like this.
}