无法填充包含&;数据的字段#039; (单引号,撇号)在JavaScript中,带有Laravel和PHP
我试图用包含单个引号的数据库中的一些数据填充表单字段。数据存储在带有PHP(和Laravel)的MySQL数据库中,使用htmlentities()和ENT#U QUOTES选项,我确认单引号已转换为无法填充包含&;数据的字段#039; (单引号,撇号)在JavaScript中,带有Laravel和PHP,javascript,php,html,laravel-5,single-quotes,Javascript,Php,Html,Laravel 5,Single Quotes,我试图用包含单个引号的数据库中的一些数据填充表单字段。数据存储在带有PHP(和Laravel)的MySQL数据库中,使用htmlentities()和ENT#U QUOTES选项,我确认单引号已转换为'保存在数据库中时 我可以通过回显在PHP页面上显示它,而不会出现任何问题,但是当我尝试使用javascript或jquery填充该字段时,它不起作用。我试过用.replace替换'
'代码>保存在数据库中时
我可以通过回显在PHP页面上显示它,而不会出现任何问题,但是当我尝试使用javascript或jquery填充该字段时,它不起作用。我试过用.replace替换'用\'
来逃避引用,但我还是没有运气。该字段称为“note”,下面是相关代码,其中$data表示从数据库检索到的数据:
<?php $data = "'Twas The Night Before Christmas"; ?>
<form method="post" name="my_form">
<input type="text" name="note" id="note" value="" />
<input type="button" value="Edit" onclick="editNote('<?php echo $data; ?>')" />
<!-- other elements here ... -->
</form>
我还尝试在javascript调用中使用PHP的addslashes(),但这也不起作用。我不知道为什么,但是有任何带有和#039代码>未正确转义,因此未填充我的字段。没有单引号的数据是可以的。使用“
的双引号数据也很好。所以现在我很困惑,我想我应该向社区寻求指导。有什么想法可以解释原因吗?我错过了一些琐碎的东西吗?如果有任何帮助,我们将不胜感激。试试这个
<?php $data = "'Twas The Night Before Christmas"; ?>
<form method="post" name="my_form">
<input type="text" name="note" id="note" value="" />
<input type="button" value="Edit" onclick='editNote("<?php echo $data; ?>")' />
<!-- other elements here ... -->
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
function editNote(data){
$('#note').val(data);
}
</script>
谢谢,但我发现以下解决方案是有效的。我只是使用PHP的str#u replace将';
替换为一个转义单引号\
,如下所示:
editNote('<?php echo str_replace("'", "\'",$data); ?>')
editNote(“”)
editNote('<?php echo str_replace("'", "\'",$data); ?>')