2012-02-26 4 views
0

저는 SO 복제품과 비슷한 점이있어서 연습을 위해 노력하고 있습니다. 나는 투표 시스템을 작성하는 중이다. upvote/downvote 버튼을 클릭하면 Ajax 호출이 게시물 ID와 값을 보유한 처리 페이지에 대한 매개 변수와 함께 전송됩니다.자바 스크립트 Ajax 호출의 게시물 ID를 얻는 방법은 무엇입니까?

이 게시물은 자바 스크립트가

내가 투표 ID로 표과 게시물 ID로 게시물 각각의 테이블과 표 테이블을 호출하는 처리 페이지에 기록 할 수있는 포스트 알 수 있도록 필요 그래서 내 투표 매핑 테이블에서 게시물 ID 옆에 항목 ID를 기록합니다.

그러나 각 다른 게시물에 대한 Ajax 호출에 대해 동적으로 다른 게시물 ID를 제공하는 방법을 알아낼 수 없습니까? 아마 숨겨진 필드를 만들어야할까요?

일반적으로 어떻게 이루어 집니까? 고마워요!

+0

당신이 포스트 ID로 무엇을 의미합니까,이 데이터베이스에 예정되어있는 ID입니다? 이 게시물 ID를 자바 스크립트로 다시 가져 오시겠습니까? 시스템에 대한 자세한 내용은 적절한 답을 제공하는 데 도움이됩니다. – Zoidberg

+0

@Zoidberg 업데이트되었습니다! 감사합니다 – youngcouple10

답변

1

스택 오버플로에서 모든 게시물에는 <input type="hidden" value="POSTID">이 포함됩니다. 투표 버튼을 클릭하면 코드가이 입력 요소를 찾고이 게시물 ID와 함께 AJAX 요청을 보냅니다.

현재, 관련 코드를 살펴 가질 수 있습니다 http://userscripts.org/scripts/review/125051
이 사용자 스크립트는 모든 게시물에 투표 수를 볼 수있는 사용자 (비 등록 포함) 할 수 있습니다. 이렇게하려면 게시물 ID 및 투표 단추를 배치해야합니다.

처럼 베어 뼈 (제외 CSS)까지 박탈 코드 보인다 : 당신은 모든 버튼을 반복하고 각 게시물의 ID를 높이거나 이미 IDS에게 서버 측을 가질 수 있지만

<input type="hidden" value="--post id--"> 
<div class="vote upvote"></div> 
<div class="vote downvote"></div> 

// Example using jQuery: 
$('.upvote').click(function() { 
    var $this = $(this); 
    $.get('/vote', { 
     postId: $this.siblings('input[type="hidden"]').val(), 
     type: $this.hasClass('upvote') ? '+1' : '-1' 
    }, function(data) { 
     // do something with server's response. 
    }); 
}); 
+0

그냥 내가 뭘 원했어, 감사합니다 !! 나중에 받아 들일 것이고, 아직 할 수 없다. – youngcouple10

0

당신은 당신의 대본을 창조시에 말해야합니다.

2

실제로 숨김 필드도 사용할 필요가 없습니다.) 포스트의 ID 자체 또는 upvote/downvote 버튼의 rel 속성을 사용하는 것이 더 간단 할 수도 있습니다. 그런 :

HTML

<div id='post-XXX'> 
    <a href='#' class='upvote_post' rel='XXX'></a> 
    { ... some immensely great post content goes here ... } 
</div> 

JS

$('.upvote_post').click(function() { 
    var post_id = this.getAttribute('rel'); 
    // or var post_id = $(this).parents('div').getAttr('id').match(/\d+$/); 
    $.post(some_url, /* data including post_id */) 
}