【发布时间】: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&id=' + studentid +" 之类的连接(即带空格),则输出为...id='%20%20%20studentid%20%20%20'"
如果我从字符串和加号之间删除所有空格,例如...studentprofile&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->addScriptDeclaration()的内部吗?您可以看到您的 js 变量studentid,尽管您明显尝试连接它,但并没有被它的值取代。让我们不要太仓促地责怪 Joomla。
标签: javascript php apache joomla