2011-07-08 28 views
2
<a href="?cate=politics">Politics</a> ~ <a href="?cout=us">United States</a> 

これはPHPでも可能かもしれないが、多分JSでは分かりません。複数の値を複数のHrefから取得する

複数のa hrefリンクから複数のGET値を取得したいと考えています。コードは上記のとおりです。 PoliticsをクリックしてPoliticsの値をURLに追加してからUnited StatesをクリックしてURLに米国の値を追加しようとしていますが、瞬間にそこにあるものを上書きするだけです。

政治をクリックすると、?cate=politicsが追加され、米国をクリックすると、&cout=usも追加されます。したがって、それは?cate=politics&cout=usのようなものになります。

両方のリンクをクリックすると、URLに両方のGET変数を取得しようとしています。それが役に立ったら、GET変数を取得するフィルタを構築しています。

+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> 

この情報がお役に立てば幸いです。歓声

+0

あなた、私の問題を解決しました。どうもありがとうございました。 –

+0

@Xiy - あなたの質問を解決したら、彼の答えを受け入れてください(http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)。 – Ben

+0

@ Steve - Done。スティーブに感謝します。 –

1

最も明白な解決策は、(URLに複数のパラメータを追加するためにアンパサンド&を使用)、あなたのHTMLにハードコードである私には思える:

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

そうでない場合、あなたはJavascriptのイベントハンドラを必要とするだろうonclickのようなものですが、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);  
} 

UPDATEその場合

(コメントの後)、ここにあなたがから働くことができるスタータ機能ですそれ以来あなたが何を持っているか分からない。 window.location.href = ...あなたが探しているものがありますか?

重要な注意:この方法は正常に機能しません。ユーザーがJavascriptを有効にしていない場合、フォームは機能しません。個人的には、パラメータをハードコーディングする最初のソリューションをお勧めします。

+0

うーんを使用する必要があり、スティーブの提案に感謝しますが、私はもっと多くの選択肢を持っているので、そうすることは実現できません。しかし、私は* basic * JavaScriptを知っていますが、あまりにも難しくなければ、私はonclickイベントハンドラの周りに頭を浮かべてみることができます。 –

+0

+1私は最初の部分 "ハードコーディング"に同意します –

+0

えーと、それは普通のJavascriptではない、つまりjQueryです。私はこの質問にjQueryタグが表示されません。 –

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>'; 

あなたが探しているものは "すべき"です。

0

これは、このように行うことはできません。あなたは2つのソリューションを持っています:PHP側(ツリーベースの構造 - IMHOは再帰を使用して最も簡単な方法)で動的にHREFを作成するか、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>"; 
関連する問題