[英]Escape quote character within string in Javascript generated with PHP
不知道該標題是否有意義,但我會盡力解釋。
我正在用PHP生成一些內容。
我要生成的是一個字符串,如果用戶啟用了JavaScript,則會在onlick事件中吐出帶有一些JavaScript的URL,然后如果未啟用JavaScript,則生成一個常規鏈接。
$url = "<script type=\"text/javascript\">
document.write(\"<a href='#' onclick='$('#UserID').val(" .
mysql_result($recordset, $count, "userid") . "); return false;'>
Click here
</a>\");
</script>
<noscript>
<a href=\"/scripts/updateuser.php?id=" .
mysql_result($recordset, $count, "userid") . "\">Click here</a>
</noscript>";
我遇到的問題是#UserID的jQuery選擇器。 因為它是單引號,所以在單擊時會炸開,並處理井號,然后轉到頁面頂部,忽略return false。
我不能在其中加上雙引號,因為那是在document.write語句的開頭和結尾。
關於如何使用轉義字符或其他內容圍繞jQuery選擇器構造字符串的任何想法?
您可以使用$(\\\\'#UserID\\\\')
。 雙反斜杠是使PHP加上一個額外的反斜杠,以使其在onclick屬性中可用。 (此外,應遵循對該問題的第一條評論,而不要使用此答案。)
好丑的上帝。 嘗試以下尺寸:
$userid = mysql_result($recordset, $count, "userid");
$url = <<<EOL
<script type="text/javascript">
document.write('<a href="#" onclick="$(\'#UserID\').val({$userid})); return false;">Click here</a>');
/script>
<noscript><a href="scripts/updateuser.php?id={$userID}">Click here</a></noscript>
EOL;
我不會研究1990年代的document.write的情況,但是如何處理:
<?php
$userid = ...
?>
<a href="scripts/updateuser.php?id=<?php echo $userid ?>" onclick="$('#UserID').val({$userid}); return false;">Click here</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.