将单引号添加到值

时间:2014-09-12 09:06:36

标签: php html

我有一个像这样的剧本

<script>
function myFunction(name)
{
document.getElementById("peep").innerHTML = "Rule " + name;
}
</script>

通常我会这样做。

<button onclick="myFunction('Attacking cost 5 engery')"> Attack </button>

注意''周围的bob,但我不知道如何将它们添加到这个php变量。

<button onclick="myFunction(<?php echo $desc?>)"><?php echo $name; ?></button>

编辑我如何获得$ desc和$ name

<php
$result = mysqli_query($con,"SELECT * FROM db_Rules");
while($row = mysqli_fetch_array($result)) {
 $desc = $row['desc'];
 $name = $row['rule'];
?>
<button onclick="myFunction('/<?php echo $desc;?>/')"><?php echo $name; ?></button>
<br>
<?php
 }
?>

4 个答案:

答案 0 :(得分:1)

此问题的一般解决方案是使用适当的转义函数

您有一个要插入JavaScript的字符串,然后将该JavaScript插入HTML属性。

首先使用json_encode来转义JS的字符串。由于JSON(或多或少)是JS的一个子集,因此这将适当地逃避它。

然后使用htmlspecialchars来转义HTML的结果字符串。

myFunction(<?php echo htmlspecialchars(json_encode($desc)); ?>)

这会给你&quot;而不是',但效果会相同。

它还将处理具有其他需要转义的字符(例如新行)和更复杂的数据结构(数组或对象)的输入。

答案 1 :(得分:0)

只需将''添加到<?php ?>代码试用

即可
  <button onclick="myFunction('<?php echo $desc;?>')">

答案 2 :(得分:0)

<?php

$name = "Attack";
$desc = "Attack costs 5 energy.";

?>

让我们来看看如果执行PHP代码会发生什么:

button onclick="myFunction(Attack costs 5 energy.)">Attack</button>

该代码不起作用。您需要在Javascript函数中包含一些引号:

button onclick="myFunction('<?php echo $desc; ?>')"><?php echo $name; ?></button>

如果您多次将PHP标记插入HTML代码,代码就会变得混乱。因此,另一种方法是创建一种自定义参数,例如:

button onclick="myFunction('%description%')">%name%</button>

然后让PHP用实际的描述和动作名称替换它。

答案 3 :(得分:-1)

<button onclick="myFunction('<?php echo mysql_real_escape_string($desc);?>')">
<?php echo $name;?>
</button>