2013-02-21 5 views
0

자주 업데이트되는 데이터베이스에서 쿼리하는 테이블을 가지고 있으며 <span id="totalvotes1"></span><span id="totalvotes2"></span> 어디에서 해당 라인을 식별 할 수 있어야합니까?에 해당하는 각 ajax에 해당하는 행을 식별 할 수 있어야합니다. 쿼리 된 행 ... 지금 설정되어있는 방식으로, 내 아약스는 정보를 표시 할 것입니다. 마지막 행의 <span id="totalvotes1"></span> ....이 작업을 수행하는 데 json을 사용해야하지만 분명히 알 수 없습니다. 어떤 도움이라도 대단히 감사합니다, 감사합니다! totalvotes1totalvotes2 :json 변수와 아약스 및 PHP

<?php 

$sql = mysql_query("SELECT * FROM blogData ORDER BY id DESC"); 
$sql2=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 0 ORDER BY mes_id DESC"); 
$sql3=mysql_query("SELECT * FROM messages WHERE mod(mes_id,2) = 1 ORDER BY mes_id DESC"); 

$count_variable = 0; 

while(($row = mysql_fetch_array($sql))AND($row2 = mysql_fetch_array($sql2))AND($row3 = mysql_fetch_array($sql3))){ 
$id = $row['id']; 
$title = $row['title']; 
$content = $row['content']; 
$category = $row['category']; 
$podcast = $row['podcast']; 
$datetime = $row['datetime']; 

$message1=$row2['msg']; 
$mes_id1=$row2['mes_id']; 
$totalvotes1=$row2['totalvotes']; 

$message2=$row3['msg']; 
$mes_id2=$row3['mes_id']; 
$totalvotes2=$row3['totalvotes']; 


?> 

<table class="content"> 
<tr> 
<td> 


<div id="main"> 
<div id="left"> 
<span class='up'><a href="" class="vote" name="up" data-options="key1=<?php echo $mes_id1;?>&key2=<?php echo $mes_id2;?>"><img src="up.png" alt="Down" /></a></span><br /> 
<span id="totalvotes1"><?php echo $totalvotes1; ?></span><br /> 
</div> 
<div id="message"> 
<?php echo $message1; ?> 
</div> 
<div class="clearfix"></div> 
</div> 
<div id="main"> 
<div id="right"> 
<br /> 
<span id="totalvotes2"><?php echo $totalvotes2; ?></span><br /> 
<span class='down'><a href="" class="vote" name="down" data-options="key1=<?php echo $mes_id1;?>&key2=<?php echo $mes_id2;?>"><img src="down.png" alt="Down" /></a></span> 
</div> 
<div id="message"> 
<?php echo $message2; ?> 
</div> 
<div class="clearfix"></div> 
</div> 
</td> 
</tr> 
</table> 

<?php 
} 
?> 

여기 내 general.js 코드에서

$(".vote").click(function() 
{ 

var id = $(this).attr("id"); 
var name = $(this).attr("name"); 
var eData = $(this).attr("data-options"); 
var dataString = 'id='+ id + '&' + eData ; 
var parent = $(this); 


if(name=='up') 
{ 

$(this).fadeIn(200).html(''); 
$.ajax({ 
type: "POST", 
url: "up.php", 
data: dataString, 
cache: false, 

success: function(data) { $('#totalvotes1').text(data); } 
}); 

} 
else 
{ 

$(this).fadeIn(200).html(''); 
$.ajax({ 
type: "POST", 
url: "down.php", 
data: dataString, 
cache: false, 

success: function(data) { $('#totalvotes2').text(data); } 

}); 


} 
}); 


}); 
}); 
+0

여기에 표시하지 않지만 여전히 링크에'id' 속성이 있습니까? 그렇다면'totalvotes'와 같은 번호를 붙이면 JS selector에서'$ ('totalvotes'+ id) .text (data);'^^ – Jon

+0

과 같이 사용할 수 있습니다. $ ('# totalvotes '+ mes_id1). 텍스트 (데이터); ? $ mes_id1이 내 링크로 전송됩니다. 당신이 거기에서 말하고있는 것이 무엇인지 확실히 모르는 im ... – trickpatty

+0

나는 당신의 이메일이나 페이스 북 Jon을 얻을 수 있습니까? 그냥 쉽게 채팅 할 수 있도록 ... – trickpatty

답변

0

문제를 제기 것은 동일한 ID를 가진 당신의 페이지에 여러 스팬을 가지고있다. 그래서 당신이 $('#totalvotes1').text(data);을 할 때 브라우저는 어떤 것을 변경해야할지 모릅니다.

이 문제를 해결하려면 다음 방법을 고려해보십시오. 먼저, 제품의 고유 키를 추가하여 범위의 ID를 변경하십시오.

<span id="total_vote_up_<?php echo $id; ?>"> 
<span id="total_vote_down_<?php echo $id; ?>"> 

두 번째로 변경해야 할 것은 이벤트를 발생시키는 링크의 ID입니다. JSON이없는 스팬의 콘텐츠를 쉽게 변경할 수 있도록하는 것과 비슷한 ID를 만들 수 있습니다.

<a class="vote" name="up" id="vote_up_<?php echo $id; ?>"...> 
<a class="vote" name="down" id="vote_down_<?php echo $id; ?>"...> 

아이디는 비슷합니다.

success: function(data) { $('#total_' + $(this).attr("id")). text(data); } 

기본적으로, 링크 (예를 들어, vote_up_123)의 id를 가지고 total_vote_up_123의 ID로 스팬 내에 총 투표를 양을 넣어 것입니다 : 이것은 당신이 스팬의 내용을 변경하려면 다음을 수행 할 수 있습니다.

+0

전적으로 이것이 어떻게 보이는지 봅니다. 일하기 위해서는 완벽하지만, 제대로 기능을 발휘할 수는 없습니다 ... 그걸로 다시 연락 드리겠습니다 ... – trickpatty

+0

분명히 저를 위해 일하지 않습니다 .... 왜 그런지 모르겠습니다. 네가 게시 한 것에 누락 된 것이 있니? – trickpatty

+0

나는 기본적으로 같은 코드를 사용했지만 대신 나는 사촌은 그저 일하는 유일한 이드입니다. 하지만 이것은 올바르게 작동하지 않습니다. 아약스는 그냥 공백을 표시합니다. – trickpatty