Я пытаюсь заполнить поле формы некоторыми данными из базы данных, содержащей одну кавычку. Данные были сохранены в базе данных MySQL с PHP (и Laravel) с использованием htmlentities () с опцией ENT_QUOTES, и я подтвердил, что одинарные кавычки преобразуются в '
при сохранении в базе данных.
Я могу отобразить это без проблем на моей странице 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, "\\'");
}
Я также пытался использовать PHP addlashes () в своем вызове javascript, но это тоже не сработало. Я не уверен почему, но любые данные с '
не экранированы должным образом, и поэтому мое поле не заполняется. Данные без одинарных кавычек в порядке. Данные с двойными кавычками с использованием "
тоже подойдут. Так что теперь я в замешательстве, и я решил обратиться к сообществу за советом. Любые идеи относительно того, что может быть причиной? Я пропустил что-то тривиальное? Любая помощь будет оценена.