将Javascript嵌入php文件中,语法

时间:2018-07-30 13:01:19

标签: javascript php

使用Ajax,我将数据发布到php文件中,在该文件中,我使用下面的代码循环。

我的部分代码无法正确格式化onclick事件:

$result .= '<a href="#" onclick="$("#element").dialog("open");" ></a>';

我试图用反斜杠转义双引号,但是没有运气。使用反斜杠,在控制台中,我看到:以某种方式从不出现“ =”的地方,也打印了所有反斜杠。代码不起作用。

有人可以帮我弄清楚我在语法上的错误吗?谢谢。

4 个答案:

答案 0 :(得分:1)

在解析HTML时,浏览器将读取UIKit部分,并推断该属性UITableView等于onclick="$("#element",因为它认为找到了双引号。因此,您需要在onclick之后转义双引号字符。由于您使用的是"$("(我想强调此处使用的单引号),因此您就是unable to escape的单引号字符串中的双引号字符。因此,您将需要以下内容: $(

现在,在渲染时php将$result .= 'some_string'转换为 $result .= '<a href="#" onclick="$(\'#element\').dialog(\'open\');" ></a>'; ,所以字符串的最终输出将是

\'

我希望这会有所帮助。

答案 1 :(得分:1)

您的字符串中有双引号,然后是内容再次用双引号引起来。第二个引号应为单引号,但这将终止字符串。因此,您将不得不逃脱它们。

所需的html代码应如下所示:

<a href="#" onclick="$('#element').dialog('open');"></a>

要实现此目的,您将必须将PHP代码更改为例如以下:

$result .= '<a href="#" onclick="$(\'#element\').dialog(\'open\');"></a>';

答案 2 :(得分:-2)

双引号应转义

$result .= '<a href="#" onclick="$(\"#element\").dialog(\"open\");" ></a>';

另一种方法是

$result .= `<a href="#" onclick="$('#element').dialog('open');" ></a>`;

答案 3 :(得分:-2)

如果使用双引号定义html属性,则不能(按原样)在属性本身中使用它,而必须对其进行编码。

$result .= '<a href="#" onclick="'.htmlspecialchars('$("#element").dialog("open");').'" ></a>';