Получить конкретный div при нажатии кнопки в цикле php while - PullRequest
0 голосов
/ 09 октября 2018

У меня есть цикл while, выплевывающий несколько постов, каждый из которых имеет кнопку div с именем 'flag_btn', при нажатии я пытаюсь показать соответствующий контейнер div для моей формы, отображаемый из цикла PHP while -

    $sql = "SELECT * FROM table";
    $result = $conn->query($sql);
    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
          $post_id = $row['post_id'];
echo "
<div id='flag_btn'>flag </div>
<div id='flag_cont' style='display:none'>
    <form method='post' class='flag_form'>
        <input type='radio' name='flag_reason' value='off'>Its Offensive<br>
        <input type='submit' value='Submit'>
    </form>
</div>
";

Вот событие jquery click -

$('#flag_btn').click(function() {
    $(this).closest('#flag_cont').show(200);
});

Но оно не работает .. Как я могу получить событие click, чтобы отобразить только flag_cont, который соответствует сообщению, которое было нажато?

* примечание: я не разместил цикл php while, так как чувствовал, что в этом нет необходимости ..

1 Ответ

0 голосов
/ 09 октября 2018

Я думаю, next() лучше в этом случае.

Я также заменил id на "Кнопках" на class, так что он будет работать для нескольких "Кнопок".

$('.flag_btn').click(function() {
  $(this).next('#flag_cont').show(200);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='flag_btn'>flag1</div>
<div id='flag_cont' style='display:none'>
  <form method='post' class='flag_form'>
    <input type='radio' name='flag_reason' value='off'>Its Offensive1<br>
    <input type='submit' value='Submit'>
  </form>
</div>
<div class='flag_btn'>flag2 </div>
<div id='flag_cont' style='display:none'>
  <form method='post' class='flag_form'>
    <input type='radio' name='flag_reason' value='off'>Its Offensive2<br>
    <input type='submit' value='Submit'>
  </form>
</div>
<div class='flag_btn'>flag3 </div>
<div id='flag_cont' style='display:none'>
  <form method='post' class='flag_form'>
    <input type='radio' name='flag_reason' value='off'>Its Offensive3<br>
    <input type='submit' value='Submit'>
  </form>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...