2010-02-20 5 views
0

나는 사용자 목록을 표시하고 각 사용자 옆에 "친구로 추가"링크가있는 페이지가 있습니다.Jquery 여러 링크 제출

사용자가이 "친구로 추가"링크를 클릭하면 Jquery를 호출하여 백엔드 PHP에 요청을 제출하고 싶습니다.

는 일반적으로 jQuery로 내 경험이 페이지에서 하나의 형태를 갖는 및 jQuery를 를 통해 그 양식을 포함 - 각 형식은 ID 있다 -. 내가 함수 $ ("#의 invite_form")를 제출 호출이 ID를 사용하여 제출 (function() -이 방법으로 양식 요소에 액세스 할 수 있습니다. var emailval = $ ("# emails") val();

그러나 지금은 양식이 없으며이 친구 목록이 루프에서 생성됩니다. 여기에 내가 가지고있는 의심이 있습니다

1) 각 href 태그에 대해 루프에 고유 ID를 생성해야합니까?

2)이 $ ("# invite_form")을 어떻게 변경합니까? submit (function #) - ("# ahref1")이됩니다. 내가

내가 바른 길에 확실려고하지 않을 경우 = "/ 액션? friend_id = 32"href가 같은 HREF 값 뭔가에 존재하는 JQuery와 함수의 friend_id 필드에 액세스하려면 어떻게

3) 감사

답변

1

당신은

jQuery를에 $ .post() 또는 $ 갔지()를 사용하여 백엔드 스크립트에 제출할 수 있습니다

예 :

$("#ahref1").click(function(){ 
    var this_friend_id = $(this).prev('input.friend_id').val(); 
    // Assuming that you store the id in a hidden input field like <input type="hidden" class="friend_id" val="32" /> which is defined just before the a href. 
    $.get('/action', { 
    friend_id: this_friend_id 
    }, function(data){ 
     // callback after the ajax request 
     alert("The response is : "+data); 
    }); 
}); 

이 문제를 해결해야한다.

+0

감사합니다. GeekTantra 감사합니다.하지만 다른 ahref id를 처리하는 방법은 무엇입니까? 내가 말했던 것처럼 - 이것들은 루프에서 생성되므로 10 개의 다른 행이 있습니다. 이제 각 ahref 태그에 대해 고유 한 ID를 만들었더라도 $ ("# ahref1")과 같은 10 가지 기능을 만들어야합니다. (function() $ ("# ahref2") $ ("#의 ahref3"). (함수 (클릭) $ ("#의 ahref4"). (함수()을 클릭합니다 나는 친구의 ID를 입력 필드와 함께해야합니다 비슷한 문제가 감사 – Rick

+1

내가 추가 할 것 GeekTantra가 거의 완벽하기 때문에 내 대답이 아닌 주석을 사용합니다 .jQuery의 마법은 선택기가 여러 요소와 일치 할 수 있기 때문에 모든 링크에 대해 단일 클릭 기능을 제공 할 수 있다는 것입니다. GeekTantra의 기능 - "this"를 사용하여 어떤 링크를 클릭했는지 알 수 있습니다. 따라서 코드 시작 부분의 "$ ("# ahref1 ")"을 "$ ("id^= 'ahref' ") 그 클릭 기능은 id가 "ahref"로 시작하는 모든 요소에 적용되며 모든 링크에서 작동해야합니다. –

+0

해당 정보를 공유해 주셔서 감사합니다 – Rick

0

1) 아니요.

$(document).ready({ 
    $('#friend_list a').each(function() { 
     // Point to current <a> 
     var $this = $(this); 
     // ... your code for each a in your list 
    }); 
}); 

2) 당신은

$(document).ready({ 
    $('#friend_list a').each(function() { 
     var $this = $(this); 
     // Save current href 
     var href = $this.attr('href'); 
     // When user click 
     $this.click(function(e) { 
      // Doesn't follow the href path 
      e.preventDefault(); 
      // ... your custom operation here 
     }); 
    }); 
}); 

3과 같이 제출 기능을 변경할 수 있습니다처럼 당신은 항상 당신은 정규식을

을 사용할 수 있습니다) 스크립트를) (.each로, JQuery와 루프를 생성하고 사용자 정의 할 수 있습니다
$(document).ready({ 
    $('#friend_list a').each(function() { 
     var $this = $(this); 
     var href = $this.attr('href'); 
     $this.click(function(e) { 
      e.preventDefault(); 
      // Assuming your link is in form "/action?friend_id=32" 
      var re = new RegExp("\d+"); 
      var id = re.exec(href); 
      // I prefer AJAX method, this is just a sample, to complete 
      $.post('/action', 
        { friend_id: id }, 
        function(data) { 
         // ... result here 
        }); 
     }); 
    }); 
}); 
+0

코드 예제가 내 필요에 완벽하게 맞습니다. 고맙습니다.이 시간을내어 고맙습니다. 감사합니다. – Rick

+0

감사합니다. –