使用PHP生成的Javascript中的字符串中的转义引号字符

时间:2011-04-01 19:10:05

标签: php javascript jquery

不确定该标题是否有意义,但我会尝试解释它。

我正在使用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选择器。由于它是单引号,因此在单击时会弹出它并处理哈希标记并转到页面顶部而忽略返回false。

我不能在那里加双引号,因为那是在我的document.write语句的开头和结尾。

关于如何使用转义字符或其他方法在jQuery选择器周围构造字符串的任何想法?

2 个答案:

答案 0 :(得分:2)

您可以使用$(\\'#UserID\\')。双反斜杠是为了让PHP添加一个额外的反斜杠,使它们可以在onclick属性中使用。 (除此之外,应该遵循对问题的第一个评论,而不是使用这个答案。)

答案 1 :(得分:1)

善良的上帝,这是丑陋的。试试这个尺寸:

$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>