在php文件中嵌入Javascript,语法

在php文件中嵌入Javascript,语法,javascript,php,Javascript,Php,我使用ajax将数据发布到php文件中,在该文件中我使用下面的代码进行了循环 无法正确格式化onclick事件的代码部分: $result .= '<a href="#" onclick="$("#element").dialog("open");" ></a>'; 我试图用反斜杠避开双引号,但没有成功。使用反斜杠,在控制台中我看到:不知何故,从无到有=出现,并且所有反斜杠都打印出来。代码不起作用 有人能帮我找出我在语法上的错误吗?谢谢。双引号应该转义 $result

我使用ajax将数据发布到php文件中,在该文件中我使用下面的代码进行了循环

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

$result .= '<a href="#" onclick="$("#element").dialog("open");" ></a>';
我试图用反斜杠避开双引号,但没有成功。使用反斜杠,在控制台中我看到:不知何故,从无到有=出现,并且所有反斜杠都打印出来。代码不起作用


有人能帮我找出我在语法上的错误吗?谢谢。

双引号应该转义

$result .= '<a href="#" onclick="$(\"#element\").dialog(\"open\");" ></a>';
另一种方法是

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

如果使用双引号来定义html属性,则不能使用itas,因为属性本身中包含ITA,因此必须对其进行编码

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

在解析HTML时,浏览器将读取onclick=$元素部分,并推断属性onclick等于$,因为它认为它找到了结束双引号。因此,您需要转义$后面的双引号字符。由于您使用的是$result.='some_string',因此我想在此处使用的单引号上进行扩展,您是单引号字符串中的双引号字符。因此,您将需要以下内容: $结果=;

现在,php将在渲染时将\“转换为just”,因此字符串的最终输出将是


我希望这会有所帮助。

在您的字符串中有双引号,后面是再次用双引号包装的内容。第二个引号应该是单引号,但这将终止字符串。所以你必须逃离他们

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

<a href="#" onclick="$('#element').dialog('open');"></a>
要实现这一点,您必须将PHP代码更改为,例如:

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

dialogopen不也应该被转义吗?另外,我认为你的第二个代码中的那些反勾号不起作用。之前我尝试过转义双引号,但没有成功。这一次,我在控制台中看到:不知何故,我从哪里看到=,从哪里来?代码也不起作用。在我把双引号改为单引号后,它起作用了。。。当然,它需要转义,否则PHP字符串将被终止,因为它以一个单引号开始。编辑,以更好地解释为什么我没有在其他帖子中找到答案。