Javascript/PHP 撇号错误

标签 javascript php jquery html

当标题包含撇号时,以下代码会产生 javascript 错误。我以为我用 htmlentities 正确地清理了标题字段,但是当标题包含单引号时我仍然收到 javascript 错误。

如果标题包含撇号,我应该如何正确清理此字符串以使函数正常工作?

Javascript:

<script type="text/javascript">
function open_modal_now(id,title,e){
    e.preventDefault();
    $('#someid').val(id);
    $('#anotherid').val(title);
    $('#yetanotherid').modal('show');
}
</script>

HTML/PHP:

<?php foreach($item as $k => $v){ ?>
<a onClick="open_modal_now(<?= $v['id']; ?>,'<?= htmlentities($v['title'],ENT_QUOTES,"UTF-8"); ?>',event);">Open Modal</a>
<?php } ?>

我添加了 <a> 的 foreach 循环在里面。这可能有助于解释为什么此信息位于属性标记中。

最佳答案

我最终使用了 Eugene Glova 提供的 addslashes 解决方案,因为 Marc B 表示 htmlentities 不是这项工作的正确工具。

更正后的有效代码:

<?php foreach($item as $k => $v){ ?>
<a onClick="open_modal_now(<?= $v['id']; ?>,'<?= addslashes($v['title']); ?>',event);">Open Modal</a>
<?php } ?>

关于Javascript/PHP 撇号错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21392153/

相关文章:

javascript - Jquery Image like ..鼠标悬停时替换图像

php - 存储数据的奇怪字符编码,旧脚本显示它们很好,新脚本却没有

javascript - 当我添加更多问题(JS)时,测验消失了,怎么办?

jquery - 使用 jQuery 最轻量级的方法是什么?

javascript - 如何在jsp中使用下拉列表、文本框和搜索按钮获取数据

javascript - 为什么 jQuery 可以在服务器上计算宽度,但在本地运行时却不能?

javascript - 使用 Google Analytics 跟踪滑动

php - 使用 php 搜索。将 keyward 与同一表中的多个列进行比较

php - 如何在 SQL 中提交引号 (') 符号

javascript - 获取 "SCRIPT438: Object doesn' t 支持此属性或方法“IE 10 上的错误”