0

在我的控制器中,我有一个来自数据库的字符串。我用

$user_id = $this->input->post('user_id');

$this->load->model('database','', TRUE);

$projects = $this->database->get_projects($user_id);

    foreach($projects as $project)
    {

        echo '  <div onclick="someFunction(\''.$project['description'].'\')"></div>';
    }

将值传递给 Javascript。一切正常,除非字符串中有双引号。萤火虫投掷

未终止的字符串文字

我试过了:

onclick = "someFunction(\''.addslashes($project['description']).'\')"

或者

$description = str_replace('"', '&quot;', $project['description']);
onclick = "someFunction(\''.$description.'\')";

但它没有用。

谢谢你的帮助

4

2 回答 2

0

尝试:

onclick = someFunction(<?php echo '"'.$myVariable.'"'; ?>);

你不能引用参数的括号......这是全局的,不仅适用于JS。

要将 PHP 与 js 或 html 混合,只需在需要的地方使用 echo 即可。如果你想要更简洁的代码,或者谷歌搜索 MVC 模型。

于 2012-11-20T12:24:11.727 回答
0

我认为您可以做的最好的事情是创建一个包含此代码的视图:

<div onclick="someFunction('<?php echo $project['description'] ?>')"></div>

并在您的控制器中调用它。最终,您可以使用 php 函数addlashes()来引用字符串/字符。

如果您需要将此 html 存储在控制器中的变量中,您可以简单地使用第三个参数调用视图;它在这里解释。

更新:尝试使用htmlentities而不是添加斜杠

于 2012-11-20T13:47:48.140 回答