2016-08-19 203 views
0

我有一个while循环加载用户的帖子,当点击按钮以获取帖子ID时,将其发送到另一个将处理它的php页面,更新数据库喜欢号码,但我不能得到良好的ID .. 我while循环:如何将PHP变量从循环传递给javascript变量

while($posts = mysqli_fetch_array($query)){ 

    <div <?php echo "id=".$posts['id'] ?> 
    <div class="post"> 
    . 
    . 
    </div> 
    </div> } 

而Ajax请求:

var id = "<?php echo $posts['id'] ?>"; 
    $.ajax({ 
    type: 'POST', 
    url: 'likes.php', 
    data: {id:id}, 
    success: function(msg){ 
    alert('Success!'); 
    } 
}); 

但输出只有最后一个值while循环,并且我希望每个帖子都可以在类似按钮预先获得id时使用ssed.Thanks寻求帮助!

回答

0

你正在做的事情永远不会工作。由于您有多个ID,您必须从点击的<div>中检索ID,并将其传递给您的ajax调用,例如,

<div data-id="42" class="clickme"> 

<script> 

$('div.clickme').click(function (e) { 
    id = $(this).attr('data-id'); 
    $.ajax(.... use "id" here ...); 
} 

另外,即使像这样将有助于:

<? while(... fetch from db ...){ ?> 

<div onclick="doAjax(<?php echo json_encode($row['id']); ?>)"> 

<script> 
function doAjax(id) { 
    $.ajax(... use "id" here ...); 
} 
</script> 
+0

感谢的人这正是我需要的! –

+0

而不是'.attr('data-id')',你也可以调用'.data('id')'。请参阅https://api.jquery.com/data/#data-html5 –