当标题包含撇号时,以下代码会产生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循环。这可能有助于解释为什么此信息位于属性标记中。
答案 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 } ?>