[英]Unable to populate a field w/ data containing ' (single quote, apostrophe) in JavaScript w/ Laravel and PHP
我正在嘗試使用包含單引號的數據庫中的一些數據填充表單字段。 數據使用帶有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的addlashes(),但這也不起作用。 我不確定為什么,但是帶有'
任何數據 沒有正確轉義,因此沒有填充我的字段。 沒有單引號的數據很好。 使用"
還可以 所以現在我很困惑,我想我可以向社區尋求指導。 關於可能的原因有什么想法? 我錯過了一些瑣碎的事情嗎? 任何幫助,將不勝感激。
嘗試這個
<?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_replace來替換'
帶有轉義的單引號\\'
,如下所示:
editNote('<?php echo str_replace("'", "\'",$data); ?>')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.