За последние 24 часа нас посетили 22845 программистов и 1272 робота. Сейчас ищут 822 программиста ...

Запрос к БД с несколькими значениями.

Тема в разделе "PHP и базы данных", создана пользователем SamyRed, 4 сен 2015.

  1. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    тебе надо различать кнопки like для разных комментариев, обычно это делается через this в javascript и через него получается id комментария, который может быть зашит в data атрибут html тега
     
  2. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    А как именно задать через .this?
     
  3. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    есть книги и документация, статьи, в которых можно прочитать про this,
    ещё тебе повезло и в документации к jquery click есть пример с this, там 3 параграфа и по this их отличают друг от друга, как раз то что тебе нужно
     
  4. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Я сделал так:
    Код (Text):
    1.     <script>
    2.     $(document).ready(function(){
    3.     $("#com_like_btn").click(function(){
    4.     var a = $(this).next();
    5.         $.ajax({
    6.             type:"POST",
    7.             url:"handlers/add_like.php",
    8.             data:{"com_id": a.val()},
    9.             response:"text",
    10.             success:function(data) {
    11.                 $("#num_likes").text(data);
    12.             }
    13.         });
    14.     });
    15.     });
    16.     </script>
    Но ничего не поменялось.
     
  5. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    а что у тебя в переменной "a"?
    легче задать кнопке data атрибут и ему присвоить id (php), потом через this его получать (javascript) (jquery data)

    делай с пониманием, если что-то не работает, просто скажи что не понял как всё связать вместе
     
  6. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Так вот я и стараюсь с пониманием делать))) Вообще стараюсь не делать того в чём не понимаю хотя бы того как это работает.
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  8. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Сделал вот так:
    <input data-comid="<?php echo $row_com["id"];?>" id="com_like_btn" title="Нравится" name="com_like_btn" class="mini_buttons" type="image" src="images/like.png"></input>

    <script>
    $(document).ready(function(){
    $("#com_like_btn").click(function(){
    $.ajax({
    type:"POST",
    url:"handlers/add_like.php",
    data:{"com_id": $(this).data("comid")},
    response:"text",
    success:function(data) {
    $("#num_likes").text(data);
    }
    });
    });
    });
    </script>

    Но всё осталось так же. По прешнему только последний коммент можно "лайкать".
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    а id какой на сервер отправляется? всегда последний?
    id атрибут должен быть уникальный http://htmlbook.ru/html/attr/id
     
  10. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    id берётся из массива (row_com["id"]) который в цикле. То есть комментарии выводятся циклом, и когда они выводятся - им присваивается id.
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    вот после нажатия на кнопку, post запрос идёт с разными id?
     
  12. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    хм... похоже что нет, сейчас точно проверю. А как тогда ему сделать разные id?

    Добавлено спустя 2 минуты 13 секунд:
    Подожди, $_POST на сервер обработки всм? Или то как js читает id комментария?

    Добавлено спустя 2 минуты 27 секунд:
    Дело в том, что кнопки вообще никак не реагируют на нажатие. (Все кроме первой).
     
  13. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
  14. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Так в том то и дело что если б я выводил свои комментарии вручную, я б давал им свои id а так как они выводятся из цикла, то я не знаю, отличаются они или нет. Может там вообще только последнему даётся id, а у предыдущих стирается.
     
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    так обходись без id, я же дал пример, он работает, и там сделано через атрибут class.
    цикл тут не причём, можно и с циклом выводить уникальные id
     
  16. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Когда сделал через class - то реагируют все кнопки, но они изменяют значение в БД только для первой.
     
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    ну проблема значит в другом, я посмотрел через инструменты разработчика в google chrome по кнопке F12 (вкладка networks -> запрос -> headers)
    когда ставишь лайк, то com_id отправляется на сервер который присвоен кнопке которую нажали, значит всё нормально
     
  18. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Можешь зайти и посмотреть как прикольно сейчас ведут себя эти кнопки
    Я теперь вообще не могу понять по какому смыслу они работают)

    Добавлено спустя 3 минуты 4 секунды:
    А, я кажется понял. Теперь данные отправляются нормально, как надо... но дело в том что там где должны писаться цифры - они пишутся очень странно. Причём и когда через id и через class
     
  19. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    Что значит странно?
     
  20. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    Если через класс - то значения всех комментов стают такими как должно быть у того где нажимаю, но если перезагрузить страницу - всё правильно. Там где нажал - изменилось, а остальные стали как были.
    А если id то я так и не понял по какому принципу они меняются.
     
  21. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    там ещё ошибки сыпятся в консоле, если нажать на кнопку, ты отладку делаешь?

    Добавлено спустя 1 минуту 25 секунд:
    так это логическая ошибка, посмотри как ты присваиваешь значение и поймёшь почему оно одинаковое для всех становиться, нужно же изменять только то что изменил, а не всё, опять this используй
     
  22. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    У меня не сыпятся.

    Добавлено спустя 2 минуты 9 секунд:
    Код (PHP):
    1. <input data-comid="<?php echo $row_com["id"];?>" title="Нравится" name="com_like_btn" class="mini_buttons com_like_btn" type="image" src="images/like.png"></input>
    2. </td><td style="padding-left: 5px"><span data-num_likes class="num_likes"><?php echo $res1->num_rows;?></span></td></tr></table>
    А как тут испод input подобраться к span через this?

    Добавлено спустя 2 минуты 39 секунд:
    Вот такая конструкция не работает))
    $(this).next().next().next().text(data);
     
  23. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    так кроме кнопки там ничего нет, нужно обращаться выше по иерархии и от туда уже к span, смотри parent() и css селекторы
     
  24. SamyRed

    SamyRed Старожил

    С нами с:
    23 июл 2015
    Сообщения:
    1.196
    Симпатии:
    111
    Адрес:
    Украина
    $(this).parent().next().children().text(data);
    Так тоже не работает.
     
  25. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.902
    Симпатии:
    969
    (тему не читал) а почему айдишники нельзя использовать?