从多个Href中获取多个值

时间:2011-07-08 23:40:29

标签: php javascript html

<a href="?cate=politics">Politics</a> ~ <a href="?cout=us">United States</a>

我不确定这在PHP中是否可行,也许是JavaScript但我不太了解JS。

我想从多个a href链接中获取多个GET值。代码在上面。假设我点击政治,然后它会将政治价值添加到网址,然后我会点击美国,我也试图将美国的价值添加到网址中,但是那一刻它只是覆盖了那里的那个。

如果我点击Politics,它会添加?cate=politics,然后如果我点击美国,它也会添加&cout=us。所以它会像:?cate=politics&cout=us

点击这两个链接时,我正试图在URL中获取两个GET变量。如果它有助于我构建一个可以获取GET变量的过滤器。

4 个答案:

答案 0 :(得分:2)

如果我理解你,这将是解决方案:

<a href="cate=politics" onclick="return addToUrl(this.href);">Politics</a> ~ 
<a href="cout=us" onclick="return addToUrl(this.href);>United States</a>

使用Javascript:

<script>
function addToUrl(str){
   location.href = location.href + "?" + str;
   return false;
}
</script>

希望这会有所帮助。干杯

答案 1 :(得分:1)

在我看来,最明显的解决方案是将其硬编码到HTML中(使用&符号&向URL添加多个参数):

<a href="?cate=politics">Politics</a> ~ 
  <a href="?cate=politics&cout=us">United States</a>

否则,您需要一个像onclick这样的Javascript事件处理程序,但如果您是JS的新手,那么学习曲线可能会对您的迫切需求有点陡峭。

更新(评论后)

在这种情况下,这是一个可以使用的启动器功能:

HTML:

<a href='somewhere.html?foo=1' id='test'>Click this link</a>

使用Javascript:

// $(id) is a common library shortcut to get an element by its id.

$('test').onclick = function() { 
  $('test').href = $('test').href + '&bar=2';
  alert($('test').href);      
}

在此之后不确定你的想法。 window.location.href = ...可能就是你要找的东西吗?

一个重要的注意事项:这种方式不会优雅地降级;如果用户未启用Javascript,您的表单将无法使用。就个人而言,我建议第一个硬编码参数的解决方案。

答案 2 :(得分:1)

这可以在多页加载中实现。加载页面时:

$cate = isset($_GET['cate']) ? $_GET['cate'] : null;
$cout = isset($_GET['cout']) ? $_GET['cout'] : null;

echo '<a href="?'.((empty($cate)) ? null : 'cate='.$cate).((empty($cout)) ? null : ((empty($cout)) ? null : '&').$cout).'">Foo</a>';

“应该”做你正在寻找的事情。

答案 3 :(得分:0)

这不能以这种方式完成。你有两个解决方案:在PHP端动态地制作hrefs(基于树的结构 - 使用递归的最简单方法)或在JavaScript中在浏览器端制作整个“菜单”(我推荐jQuery) - 非常复杂,“机器人”不受支持,问题与浏览器兼容等

也许我没有理解你的问题。也许你期待这个解决方案:

<?php
echo "<a href=\"?cate=politics\">Politics</a>";
$cate = $_GET['cate'];
if ($cate) $cate = "cate=$cate&";
echo "<a href=\"?{$cate}cout=us\">United States</a>";