每当单击链接时,我都会通过 URL 将字符串传递到另一个页面。
原始的 a
标签及其 href
是通过 PHP while 循环创建的,如下所示:
<a href=".($row['secondary'] == 'true' ? "secondary_imgs.php?imgId=".$row['imgId']."
&imgTitle=".$row['imgTitle']."" : "new_arrivals_img/".$row['imgURL']."").">
注意:a
标记确实包含其他属性,但为简单起见我删除了它们。
然后使用以下 jQuery 函数将当前窗口尺寸附加到 href
:
$("a[href^='secondary_imgs.php']").click(function(){
var pageWidth = $(window).width();
var pageHeight = $(window).height();
var url = $(this).attr('href');
var idx = url.indexOf('&pageWidth=');
if (idx != -1) {
url = url.substr(0, idx);
}
url += '&pageWidth=' + pageWidth + '&pageHeight=' + pageHeight;
$(this).attr('href', url);
});
我的问题是,在这种情况下我应该使用什么编码 URL 的方法,因为它需要首先使用 PHP,然后是 jQuery/JavaScript,最后通过 PHP 解码?
或者将它需要在 PHP 和 jQuery/JavaScript 中完成吗?原始的 PHP $row['imgTitle']
将总是至少有空格,所以我知道它需要在那时完成。但是看到附加值将始终是一个等于数字的变量,是否也需要对其进行编码?
我知道每种编码语言都有几种编码/解码 URL 的方法,但我的知识不足以做出选择。
如果有人也可以提供我将如何执行每个步骤的示例,将不胜感激。
最佳答案
你应该使用 urlencode()
在 PHP 中对 URI 组件进行编码。
javascript 中的等效函数是 encodeURIComponent()
.
PHP 将自动解码这样编码的参数。
所以,在你的 PHP 中:
'<a href="..&imgTitle='.urlencode($row['imgTitle'])
同样,在您的 javascript 中:
'&someparam=' + encodeURIComponent(someValue)
关于php - jQuery 和 PHP : Encode & Decode URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7296499/