Javascript / PHP撇号错误

时间:2014-01-27 21:34:07

标签: 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循环。这可能有助于解释为什么此信息位于属性标记中。

1 个答案:

答案 0 :(得分:0)

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

更正后的代码:

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