簡體   English   中英

無法使用JavaScript和Laravel和PHP填充包含數據(包含單引號和單引號)的字段

[英]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 = "&#039;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(/&#039;/g, "\\'");
}

我還嘗試在我的javascript調用中使用PHP的addlashes(),但這也不起作用。 我不確定為什么,但是帶有&#039;任何數據 沒有正確轉義,因此沒有填充我的字段。 沒有單引號的數據很好。 使用&quot; 還可以 所以現在我很困惑,我想我可以向社區尋求指導。 關於可能的原因有什么想法? 我錯過了一些瑣碎的事情嗎? 任何幫助,將不勝感激。

嘗試這個

<?php $data = "&#039;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來替換&#039; 帶有轉義的單引號\\' ,如下所示:

editNote('<?php echo str_replace("&#039;", "\'",$data); ?>')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM