一個簡單的問題,我無法找到'正確的'答案。將帶撇號的字符串從PHP傳遞到JavaScript函數
我有一個PHP腳本,它從數據庫中讀取人名,並將它們顯示在表中。在每一行,我都超鏈接到的人的名字,以顯示與該人的姓名作爲標題,彈出一個JavaScript函數 - PHP代碼和HTML結果如下:
$name = $results['name'];
echo '<a href="javascript:void(0)" onclick="popup(this, '\' . $name . '\')">' . $name . '</a>';
的HTML:
<a href="javascript:void(0)" onclick="popup(this, 'Steve Smith')">Steve Smith</a>
一切工作正常,除非當我打一個連字符的名稱,如「布萊斯D'Arnoud」導致撇號中斷HTML。爲了解決這個問題,我現在用的是PHP addslashes()
功能,導致下面的代碼& HTML:
$name = $results['name'];
echo '<a href="javascript:void(0)" onclick="popup(this, '\' . addslashes($name) . '\')">' . $name . '</a>';
的HTML:
<a href="javascript:void(0)" onclick="popup(this, 'Bryce D\'Arnoud')">Bryce D'Arnoud</a>
一切功能正常,但由於某些原因,JavaScript的不刪除轉義字符,並在彈出()函數,如果我提醒了名,我看「布萊斯d \'阿諾德·」
function popup(t, name) {
alert(name);
}
任何建議至於我去哪裏錯了?
有趣......但有沒有辦法,代碼生成有效的HTML,是嗎? – 2012-03-05 02:59:27
當然,'data-'屬性是HTML5的標準部分。 – Eli 2012-03-05 03:04:58
謝謝。希望避免不得不加載jQuery來做一個簡單的onclick調用,但會保留這個解決方案作爲我的後備。 – 2012-03-05 03:18:55