我正在尝试使用来自包含单引号的数据库中的一些数据填充表单字段。数据使用带有ENT_QUOTES选项的htmlentities()通过PHP(和Laravel)存储在MySQL数据库中,并且我确认将单引号保存到数据库后会转换为'
。
通过回显它,我可以在PHP页面上无问题地显示此消息,但是当我尝试使用javascript或jquery填充该字段时,它不起作用。我尝试用.replace将'
替换为\'
来避免引号,但我还是没有运气。该字段称为“注释”,这里是相关代码,其中$ 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:
//I have tried:
function editNote(data){
$('#note').val(data);
}
//I also tried:
function editNote(note){
var form = document.getElementById('my_form');
form.note.value = data.replace(/'/g, "\\'");
}
我也尝试在JavaScript调用中使用PHP的addslashes(),但这也不起作用。我不确定为什么,但是带有'
的所有数据都无法正确转义,因此不会填充我的字段。没有单引号的数据很好。使用"
用双引号引起来的数据也可以。所以现在我很困惑,我想我可以向社区寻求指导。关于可能的原因有什么想法?我错过了一些琐碎的事情吗?任何帮助将不胜感激。
答案 0 :(得分:0)
尝试
$url ='https://www.trademe.co.nz/property/insights/';
$crawler = $client->request('GET', $url);
$crawler->filter('input')->form();
答案 1 :(得分:0)
谢谢,但是我发现以下解决方案是有效的。我只是使用PHP的str_replace用转义的单引号'
替换了\'
,如下所示:
editNote('<?php echo str_replace("'", "\'",$data); ?>')