Php 将单引号添加到值
我有一个这样的剧本Php 将单引号添加到值,php,html,Php,Html,我有一个这样的剧本 <script> function myFunction(name) { document.getElementById("peep").innerHTML = "Rule " + name; } </script> 函数myFunction(名称) { document.getElementById(“peep”).innerHTML=“规则”+名称; } 通常我会这样做 <button onclick="myFunction('Atta
<script>
function myFunction(name)
{
document.getElementById("peep").innerHTML = "Rule " + name;
}
</script>
函数myFunction(名称)
{
document.getElementById(“peep”).innerHTML=“规则”+名称;
}
通常我会这样做
<button onclick="myFunction('Attacking cost 5 engery')"> Attack </button>
攻击
请注意bob周围的“”,但我不知道如何将它们添加到此php变量中
<button onclick="myFunction(<?php echo $desc?>)"><?php echo $name; ?></button>
只需将'
添加到
标签中,然后重试
<button onclick="myFunction('<?php echo $desc;?>')">
此问题的一般解决方案是使用适当的转义函数
您有一个字符串要插入到JavaScript中,然后将该JavaScript插入到HTML属性中
首先使用json\u encode
为JS转义字符串。由于JSON(或多或少)是JS的一个子集,因此可以适当地对其进行转义
然后使用htmlspecialchars
对HTML的结果字符串进行转义
myFunction(<?php echo htmlspecialchars(json_encode($desc)); ?>)
myFunction()
这将为您提供“
而不是”
,但效果相同
它还将处理具有其他需要转义的字符(如新行)和更复杂的数据结构(数组或对象)的输入。
让我们看看如果执行PHP代码会发生什么:
button onclick="myFunction(Attack costs 5 energy.)">Attack</button>
button onclick=“myFunction(攻击消耗5能量”)>攻击
该代码不起作用。您需要在Javascript函数中包含一些引号:
button onclick="myFunction('<?php echo $desc; ?>')"><?php echo $name; ?></button>
按钮onclick=“myFunction(“”)”>
如果您多次在HTML代码中插入PHP标记,代码将变得混乱。因此,另一种方法可能是创建一种自定义参数,例如:
button onclick="myFunction('%description%')">%name%</button>
button onclick=“myFunction(“%description%”)”>%name%
然后让PHP将其替换为实际的描述和操作名称。使用
\'
添加单个qoute。请尝试“myFunction(“”)“当我这样做时,我会得到结果规则
,而var$desc永远不会显示。为了确保我得到了$desc,我将按钮名称改为$desc,它显示在按钮上。那么您还有什么问题吗?您可以看到它只显示规则(现在它已更改为描述)。因此,在描述之后,它永远不会显示这个实际的部分,就像您不在.php页面中一样,否则您将得到输出:-attack仍然有点新。但它将运行php连接到数据库。即使mysql\u real\u escape\u string
没有被弃用,也不适合在这里使用,因为数据将插入JS和HTML,而不是mysql。没有pb,用户可以使用addslashes()而不是。看起来它不在php页面上。请尝试检查元素onclick=“myFunction(“?php echo$desc;?”)“
-此答案中的代码不可能导致这种情况。
button onclick="myFunction(Attack costs 5 energy.)">Attack</button>
button onclick="myFunction('<?php echo $desc; ?>')"><?php echo $name; ?></button>
button onclick="myFunction('%description%')">%name%</button>