За последние 24 часа нас посетили 17966 программистов и 1602 робота. Сейчас ищут 1710 программистов ...

Добавление комментариев + ajax

Тема в разделе "PHP и базы данных", создана пользователем EYEZsee, 17 апр 2017.

  1. EYEZsee

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Всем добрый день, помогите, люди добрые, голову сломал уже, а время поджимает.
    В общем сайт представляет собой новостной блог. По клику на название новости последняя открывается и там, если зарегистрирован, появляется возможность оставить коммент.
    Код (Text):
    1. $sql = "SELECT * FROM `articles` LIMIT " . $first_limit . ',' . $results_per_page;
    2.                             $result_pag = mysqli_query($connection, $sql);
    3.                             while ($row = mysqli_fetch_array($result_pag)) {
    4.                                 echo '<a href="index.php?post=' . $row['id'] . '">' . $row['Title'] . '</a>' . '<br>' . $row['Text'] . '<br><br>';
    5.                             }
    Таким образом я делаю ссылки для перехода на новость и на каждой новости уникальное значение "post=". Далее я вывожу по этому же значению новость
    Код (Text):
    1. $sql = "SELECT * FROM `comments`";
    2.             $result = mysqli_query($connection, $sql);
    3.             while ($row = mysqli_fetch_array($result)) {
    4.                 if ($row['article_id'] == $post) {
    5.                     ?> <div class = "comment_title">
    6.                         <?php
    7.                             echo "<li>" . $row['author'] . '</div> <div class = "comment_text">' . $row['text'] . "</li>";
    8.                         ?> </div> <?php
    9.                 }
    10.             }
    Здесь $post - имеет присвоенное значение $_GET['post].
    Есть отдельный файл comments.php, который в себе имеет форму для ввода коммента и кнопочку
    Код (Text):
    1. <form method = "post" action = "php/controllers/commentsController.php" id = "comment-text">
    2.     <p> <input name = "comment" type = "text" class = "comment_area" > </input></p>
    3.     <p> <input type = "submit" class = "submit" value = "Add a comment" id = "subchat"> </input> </p>
    4. </form>
    И вот здесь начинаются танцы с бубном. Как видно, я подрубаю контроллер и так выходит, что при клике на кнопку меня выкидывает на страницу .../commentsController.php , пустую. Это, в принципе, я пока решил с помощью локатора на $_SERVER['HTTP_REFERER']. Но я никак не могу получить значение открытой новости, это самое значение $post. Ведь по нему я привязываю комменты к новости. В контроллере я просто не могу его получить. Ровно как и значение логина активного пользователя. Что я только не пробовал. Коммент добавляется, дата автоматом, а юзер и айди новости не хотят. Танцевал с ajax (им, кстати, и надо реализовывать комменты), но ничего с ним у меня вообще в таблицу не записывается. Помогите, пожалуйста и не гнобите сильно.
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.861
    Симпатии:
    752
    Адрес:
    Татарстан
    так в форме hidden поле с id новости заведи и будет счастье
     
  3. EYEZsee

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    А можно мне поразжевывать немного, если нетрудно? Ведь там же action кидает меня на ссылку... Я, кстати, где-то накопал, как один парень переменную делал и ей присваивал и хватал потом оттуда как-то... Но вот как он это сделал - он не объяснял
     
  4. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.798
    Симпатии:
    1.331
    Адрес:
    Лень
    "SELECT * FROM comments WHERE article_id = " . (int)$post

    в цикле больше условие не потребуется
     
  5. EYEZsee

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Ну да, так получше, но основная то проблема, что мне по значению $post надо потом привязать комментарий, а он мне в контроллере пустой приходит, когда коммент добавляю в таблицу
     
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    Имелось в виду <input type="hidden" name="newId" value="[id_новости]" />
    --- Добавлено ---
    Это разновидность элементов формы, которая является скрытой от пользователя и нужна для подобных твоему случаев.
     
  7. EYEZsee

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Спасибо, попробую так покопать
     
  8. EYEZsee

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Решилось просто и неожиданно корректировкой action'а
    Код (Text):
    1. action = "php/controllers/commentsController.php<?php echo "?post=" . $_GET["post"] ?>