【问题标题】:Joomla! is forcing my concat plus '+' to "%20"Joomla!正在强制我的 concat 加 '+' 到 "%20"
【发布时间】:2018-11-04 07:43:07
【问题描述】:

我的这个多行字符串主要由 html 组成,所以我决定使用单引号作为分隔符。

为了保持简洁,我从字符串中删除了大部分 html,只关注错误部分。

jQuery("#myModal .modal-content").html('<div class="modal-header">' +
      '<h4 class="modal-title" id="myModalLabel">Duplicate Entry Found!</h4></div>' +
      '<a type="button" href="index.php?layout=studentprofile&id=' + studentid +'" target="_blank">View Student Profile</a>' );

发生的情况是 服务器正在对代码进行 urlencoding 并删除加号 + 并在其位置添加 %20

如果我正在编写...studentprofile&amp;id=' + studentid +" 之类的连接(即带空格),则输出为...id='%20%20%20studentid%20%20%20'"

如果我从字符串和加号之间删除所有空格,例如...studentprofile&amp;id='+studentid+",则输出变为...id='%20studentid%20'"

一个有趣的观察是,这仅发生在单个引号中,如果我只是切换逗号,它就会恢复正常工作。

我想补充的其他内容是这段代码在以前的 LAMP 安装中可以完美运行,但我最近升级了整个堆栈,所以不知道是 webserver 还是 php 语言,甚至我的框架 Joomla! 也在引入这种行为。

另一个发现:这仅发生在 studentid 变量周围的加号上,其余所有带加号的字符串都运行良好。

好的,我似乎在这里发现了什么,现在显然是 Joomla! 的错,找到另一个 similar question

【问题讨论】:

  • 您是否通过代码编辑器插入此代码.. 会有所不同。
  • @norcaljohnny 不,此代码位于自定义组件视图布局中。
  • 所以你想让 URL 的那部分字面意思是 id+studentid+?
  • Joomla 非常努力地让您生成正确指定的输出,包括 url。在您链接的问题中,该人试图创建一个无效的 url,因为 url 不能包含空格。这就是为什么在 Joomla 中您会看到别名中的空格被连字符替换,仅作为一个示例。您能否举例说明您希望最终 URL 的样子?
  • @9kSoft 请显示更多您的脚本。感觉这是由您提供此 sn-p 的 方式 引起的。这是$document-&gt;addScriptDeclaration() 的内部吗?您可以看到您的 js 变量 studentid,尽管您明显尝试连接它,但并没有被它的值取代。让我们不要太仓促地责怪 Joomla。

标签: javascript php apache joomla


【解决方案1】:

试试流动的 sn-p。它确实有效:

var studentid = '2';

console.log(
'<div class="modal-header">' +
      '<h4 class="modal-title" id="myModalLabel">Duplicate Entry Found!</h4></div>' +
      '<a type="button" href="index.php?layout=studentprofile&id=' + studentid +'" target="_blank">View Student Profile</a>'
);

【讨论】:

  • 很可能是,Joomla!做自己:)
  • @Martin 问题不在于正在完成的任务,而是如何用户将其交付给 Joomla。
  • 你在想哪里+studentid+从哪里来,你觉得它代表什么?如果不了解更多就很难说,但基本上我认为您误解了在 PHP 中从变量和固定字符串的组合构建字符串的一些基础知识。您应该查看一些在模型或文章视图中构建的链接示例。您可以在模板管理器中看到这些。
  • 等待您在控制台中执行此操作吗?
猜你喜欢
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-17
  • 1970-01-01
  • 1970-01-01
  • 2017-12-05
  • 1970-01-01
相关资源
最近更新 更多