2011-12-14 10 views
2

私がしたいのは、ページ上にあるかもしれないいくつかのリンクを取って、クリックされたリンクだけを解析してPHPスクリプトに送ることです。ハイパーリンクを1つのJQuery関数に渡して取得する

<a href="?something=2&id=100&somethingelse=55" class="link">My First Link</a> 
<a href="?something=3&id=400&somethingelse=65" class="link">My Second Link</a> 

私が望むのは、リンクをつかんでPHPに渡すことです。このコードを使用すると、どのリンクをクリックしても最初のリンクしか取得できません。

私はむしろ、これらのリンクをサイト内の各ハイパーリンクの機能よりも送る機能を持っています。私は単に基本的に同じことを行う必要な機能の量を凝縮または統合しようとしています。ここで

私がこれまで持っているものです。

$(".link").click(function() { 
    var v1 = $("a.link").attr("href"); 

// var v1 = $("a.ajax-link")[2].href; 
    var dataString = 'v1='+ v1; 

    $.ajax({ 
     type: "POST", 
     url: "/", 
     data: dataString, 
     dataType: 'json', 
     success: function(data) { 
     if(data.success == 1){ 
      alert(data.success); 
     } 
     else{ 
      alert(data.success); 
     } 
     } 
    }); 
    return false; 
    }); 

答えて

2
はイベントターゲット(この場合は this)を取得するようにコードを変更し

:$(これを使用して

var v1 = $(this).attr("href"); 
+0

ありがとうrcdmk。それは働いた – Muzz

0
$(".link").click(function() { 
    var v1 = $("a.link").attr("href"); 

// var v1 = $("a.ajax-link")[2].href; 
    var dataString = 'v1='+ encodeURIComponent(v1); 

    $.ajax({ 
     type: "POST", 
     url: "your_php_page_to_handle_post", 
     data: dataString, 
     success: function(data) { 
     if(data.success == 1){ 
      alert(data.success); 
     } 
     else{ 
      alert(data.success); 
     } 
     } 
    }); 
    return false; 
    }); 
+0

ありがとうございました。私は明らかにこれで 'encodeURIComponent'が欠けていましたが、すべてのリンクが異なっていても、同じハイパーリンクが送信されているのと同じ問題があります。ユーザーがクリックして送信する適切な対応リンクを取得するにはどうすればよいですか? – Muzz

0

)をクリックすると、クリックされたリンクへの参照が渡されます。

$(".link").click(function() { 
    var href = $(this).attr("href"); 
    var dataString = 'v1='+ encodeURIComponent(href); 

    $.ajax({ 
     type: "POST", 
     url: "your_php_page_to_handle_post", 
     data: dataString, 
     success: function(data) { 
     if(data.success == 1){ 
      alert(data.success); 
     } 
     else{ 
      alert(data.success); 
     } 
     } 
    }); 
    return false; 
    }); 
+0

ありがとうjrummell。リンク全体が渡されるように、どこでencodeURIComponentを使用しますか? – Muzz

+0

答えを 'encodeURIComponent()'で更新しました。私はそれがあなたが探しているものだと思います。 – jrummell

関連する問題