如何在javascript中编写代码

时间:2013-10-29 12:11:09

标签: cakephp cakephp-1.3

我需要进行DOM替换,如下所示:

$("#target").html('<?php echo $html?>');

$html变量可能是复杂的标记

$html = '<div>
    <input type="text" name="test" />
  </div>';

当然我需要某种转义,或者javascript引擎会在第一个crlf或引用时出现语法问题。在rails中有一个简单的函数escape_javascript,它非常容易。 cakephp有什么相似之处吗?

2 个答案:

答案 0 :(得分:1)

我认为使用

$("#target").html('<?php echo $this->element("element_path"); ?>');

更有意义。但这取决于你的element_path.ctp文件中的内容。 另一方面,像这样放置替换HTML有点奇怪。特别是如果它是lott,我会进行ajax调用来加载HTML并让Controller函数返回元素的内容。

$("#target").html('Loading...').load('/myController/loadHtml/');

和myController

function loadHtml(){
    $this->layout = false;
}

和功能app / View / my / load_html.ctp的视图:

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

答案 1 :(得分:0)

您可以使用requestAction

执行此操作

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

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

echo $this->Html->scriptBlock('
    $("#target").html('. $this->Js->value($html) .');
');

在你的TestsController中。

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.
}