【问题标题】:Escape character in jquery and phpjquery和php中的转义字符
【发布时间】:2014-08-30 16:04:49
【问题描述】:

这是我的第一篇文章,所以如果我做了一些违反规则的事情,请告诉我。

我的 jquery 文件中有这个语句的问题:

        $('#temp').append(
                "<li class = 'list-group-item'><a href='others_profile.php?view=<?php echo $row['user']?>'>" 
                + array_users_found[i] + 
                "</a></li>");

因为我猜'user'周围的符号''会导致问题。

我该如何解决这个问题?

【问题讨论】:

  • 这应该不是问题,因为 php 在其他任何事情之前都会被解析。这是一个 php 文件还是您的服务器设置为将 javascript 文件作为 php 处理?
  • PHP 通常不会在普通的 .js JavaScript 文件中运行(这可能是您所指的“jquery 文件”)。
  • 我想你忘记了echo语句&lt;?php echo $row['user']; ?&gt;中的分号
  • @user3350731 分号是可选的
  • 尝试删除 $row['user'] 周围的引号 - array_users_found 是什么? (谷歌结果是 2,你的问题和其他东西)。这不是我所知道的功能;这是从哪里来的?

标签: php jquery escaping


【解决方案1】:
$('#temp').append(
    '<li class="list-group-item"><a href="others_profile.php?view=<?php echo urlencode($row['user']); ?>">' 
    + array_users_found[i] + 
    '</a></li>'
);

注意:解释 PHP 语句的唯一方法是它是否存在于由支持 PHP 的 Web 服务器处理的 HTML 文件中。通常,这些是带有 .html 或 .php 扩展名的文件。例如,将 PHP 语句放在 .js 文件中是行不通的。 PHP 解释器不会解析 .js 文件。

附加说明:如果您想将 PHP 合并到您的 javascript 中,最简单的解决方案是将代码 sn-p 移动到您的 HTML 文档中,只要它需要。或者,您可以通过在输出任何内容之前适当地设置响应 header 来将您的 javascript 文件更改为提供 javascript 内容的 PHP 文件。例如:

<?php header('Content-Type: text/javascript'); ?>
// your javascript here ...

这种方法的缺点是您增加了 PHP 的开销来提供 javascript,并且浏览器可能不会缓存文件,因为它被假定为动态的。

【讨论】:

  • 谢谢你的回答,但我想我也有同样的问题。因为第一个 ' 与 'user' 中的第一个 ' 匹配。
  • 那么你的 PHP 代码没有被解释。您能解释一下这段 javascript 代码存在于哪里或粘贴您的完整源代码吗?
  • 此 javascript 代码存在于外部 .js 文件中。主 html(在本例中为 .php 扩展名)页面的外部。我正在尝试将此列表附加到一个 div,以便当我单击列表中的链接时,会调用另一个 php 文件(在本例中为 other_profile.php)
  • 好的,这就是你的问题。请参阅我对上述答案的添加说明。 cmets 中没有足够的空间来解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多