페이지의 항목 목록을 동적으로 생성했습니다. 각 항목의 $ itemid를 쉽게 얻을 수 있습니다.동일한 페이지에 jQuery의 다중 인스턴스
각각에 대한 투표를 설정하려고하지만 투표 링크의 인스턴스가 서로 혼동되지 않도록 충분히 다른 인스턴스를 만들 수 없으며 예상대로 페이지가 시도되고 있습니다. 당신의 HTML에, 내 vote.php 페이지
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(".submitVote a").click(function()
{
var ID = <?php echo $itemid;?>;
var add = 1;
var votedby = <?php echo $usr_id ;?>;
var rating = <?php echo $ratings;?>
var queryString = 'id='+ ID +'&votedby='+votedby +'&add='+add +'&rating='+rating;
$("#vote").text(rating+1);
$.ajax({
type: "POST",
url: "vote.php",
data: queryString,
cache: false,
success: function(html)
{
$(".submitVote").html('<p style="margin:1px;padding:0px;"></p>');
$("#greet").html("Thanks for voting!");
$("#greet").delay(500).fadeOut(5000);
}
});
});
});
</script>
<div id="<?php echo $itemid;?>" style="width:350px;">
<span class="submitVote" >
<p style="margin:1px;padding:0px;">
Submit your <a href="#">vote</a>
</p>
</span>
<div id="voteBox">
<div id="vote<?php echo $itemid;?>"> <?php echo $ratings;?> </div>
<span style="color:#fae240;">votes</span>
</div>
<div id="greet" style="padding-left:65px;"></div>
</div>
귀하의 질문은 전혀 명확하지 않다, jQuery가 이벤트 처리기를 호출 할 때 'this'가 관련된 DOM 요소에 바인딩된다는 사실을 이용하여 진행할 수 있다고 생각합니다. 따라서 PHP 코드가 고유 한 "id"값을두고 다른 정보를 "data-"속성에 저장하는 동안 이벤트 핸들러는 적절한 HTTP 요청을 형성 할 수 있습니다. – Pointy
죄송합니다. 더 설명하지 못했습니다 ... 어떻게 위의 내용과 $ this를 연결합니까? 현재 페이지의 모든 요소가 현재 post.php 페이지에 게시 중임 –
PHP를 사용하여 JavaScript가 아닌 HTML에 정보를 저장합니다. HTML을 어떻게 보이는지 게시하지 않았으므로 세부 정보를 제공 할 수 없습니다. – Pointy