gpt4 book ai didi

php - 通过 php 执行警报功能时 Javascript 错误

转载 作者:行者123 更新时间:2023-11-28 02:58:42 25 4
gpt4 key购买 nike

我在我的一个应用程序中使用融合贴图。

在一个示例中,我必须将值从一个 map 传递到另一个图表,

如果传递的数据是数字,它会正确显示警报消息,但如果它是字符串,我会遇到一个问题:

NM is not defined

javascript:alert(NM)()

我的代码如下:

$strXML .= "<entity id='" . $rs1['Internal_Id'] . "' value='" . round((($rs1['datap'] /  $sumdata) * 100),2) . "' link='javascript:alert(".($rs1['Internal_Id']) . ")'  />";

如果我更改链接部分(在警报中传递单引号),即:

$strXML .= "<entity id='" . $rs1['Internal_Id'] . "' value='" . round((($rs1['datap'] /  $sumdata) * 100),2) . "' link='javascript:alert('".($rs1['Internal_Id']) . "')'  />";

它显示无效的 xml 数据。

请帮我解决这个问题

谢谢

潘卡杰

最佳答案

使用 \" 而不是 ' 来包围 JavaScript 字符串。

$strXML .= "<entity id='" . $rs1['Internal_Id'] . "' value='" . round((($rs1['datap'] /  $sumdata) * 100),2) . "' link='javascript:alert(\"".($rs1['Internal_Id']) . "\")'  />";

所发生的情况是生成的 xml 如下所示:

<entity id='NM' value='1' link='javascript:alert('NM')'/>

正如您应该能够从 SO 语法突出显示中看到的那样,在 javascript:alert(' 之后结束链接属性的值,因为您对 javascript 使用的引号与用于围绕属性值。

使用不同的引号(" 而不是 ')不会结束属性值(再次参见语法突出显示)

<entity id='NM' value='1' link='javascript:alert("NM")'/>


在 PHP 中,我们必须转义引号(使用 \),这样 php 解释器就不会将其解释为特殊字符并用于结束字符串,这就是为什么在 php 中必须编写 \"

关于php - 通过 php 执行警报功能时 Javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1832899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com