2016-08-19 2 views
0

У меня есть цикл while, который загружает сообщения пользователя и когда нажата кнопка, чтобы отправить идентификатор сообщения, отправьте его на другую php-страницу, которая будет обрабатывать ее и обновление в базе данных количества нравится, но я не могу получить хороший идентификатор .. Моих во время цикла:Как передать переменную 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, и я хочу, чтобы каждый пост получал идентификатор, когда кнопка типа like ssed.Спасибо за помощь!

ответ

0

То, что вы делаете, никогда не будет работать. Поскольку у вас несколько идентификаторов, вам необходимо получить идентификатор от <div>, на который было нажато, и передать это на ваш вызов 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 –

Смежные вопросы