За последние 24 часа нас посетили 21813 программистов и 1067 роботов. Сейчас ищут 707 программистов ...

Комментирование на сайте с ajax

Тема в разделе "Сделайте за меня", создана пользователем EYEZsee, 25 апр 2017.

  1. EYEZsee

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Всем доброго времени суток, хотелось бы найти человека со знанием php и js, который может помочь исправить ошибку.
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.410
    Симпатии:
    1.768
    а чего за ошибка-то?
     
  3. denis01

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

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

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Ну
    я по консоли смотрю, времени нет разбираться с этими всеми постами, поэтому сюда и обратился... Могу накидать куски неработающей части или залить архив с проектом
     
  5. EYEZsee

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Комментарии добавляются, но только по обновлении страницы
    вот .js
    Код (Text):
    1. $(document).ready(function() {
    2. var chatTextDiv = document.getElementById("commentslist");
    3. $('#subchat').click(function(evt) {
    4.         evt.preventDefault();
    5.         var comment = $('.comment_area').val();
    6.         $.ajax({
    7.             type: "POST",
    8.             url:$(this).closest("form").attr("action"),
    9.            
    10.             data: {
    11.                 "comment" : $("#comment").val(),
    12.             },
    13.             success: function(data){
    14.                 var array = JSON.parse(data);
    15.                 var chatText = "";
    16.                 for (i in array) {
    17.                     chatText += "<p>" + array[i]['name'] + " : " + array[i]['comment'] + "</p>";
    18.                 }
    19.                 chatTextDiv.innerHTML = chatText;
    20.             }
    21.         });
    22.        
    23.         return false;
    24.     });
    25.  
    26.  
    27. })
    вот по базе
    Код (Text):
    1. <?php
    2.     include("Note.php");
    3.     include("db.php");
    4.  
    5.     class DBChat {
    6.  
    7.         public function addNote($note) {
    8.             include('db.php');
    9.             $name = $note->getName();
    10.             $comment = $note->getComment();
    11.             $asso = $note->getArtId();
    12.  
    13.             $sql = "INSERT INTO `comments`(author, text, date, article_id) VALUES ('" . $name . "', '" . $comment . "',NOW(), '" . $asso . "')";
    14.             $result = mysqli_query($connection, $sql);
    15.             if (!$result) {
    16.                 return FALSE;
    17.             } else {
    18.                 return TRUE;
    19.             }
    20.         }
    21.  
    22.        
    23.  
    24.     }
    25. ?>
    вот контроллер
    Код (Text):
    1. <?php
    2.     session_start();
    3.     include("../User.php");
    4.     include('../DBChat.php');
    5.  
    6.    
    7.    
    8.        
    9.  
    10.     $DBChat = new DBChat();
    11.    
    12.     $user = unserialize($_SESSION['user']);  
    13.     $user = $user->getLogin();
    14.     $id = $_GET['post'];
    15.     $comment = $_POST['comment'];
    16.     if ($DBChat->addNote(new Note($user, $comment, $id))) {
    17.         echo json_encode(array( "author" => $user, "comment" => $comment, "id" => $id));
    18.     }
    19.  
    20. ?>
    вот форма
    Код (Text):
    1. <?php
    2.     if ((isset($post)) AND ($user)) { ?>
    3.  
    4. <div class = "comments"> Leave a comment below </div>
    5. <div class = "chat-text-div" id = "chat-text-div">
    6. </div>
    7. <form method = "post" action = "php/controllers/commentsController.php<?php echo "?post=" . $_GET["post"] ?>" id = "comment-text">
    8.     <p> <textarea name = "comment" type = "text" class = "comment_area" id = "comment" > </textarea></p>
    9.     <p> <input type = "submit" class = "submit" value = "Add a comment" id = "subchat"> </input> </p>
    10. </form>
    11.  
    12.     <?php } ?>
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    лучше тогда создай тему в разделе "free-lance" там сделают за деньги, а тут обычно с чем-то мелким обычно помогают
     
  7. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    уже догадываюсь почему не работает. 1 Вариант
     
  8. EYEZsee

    EYEZsee Новичок

    С нами с:
    17 апр 2017
    Сообщения:
    13
    Симпатии:
    0
    Проблема в аяксе я так думаю (99%). Когда я логами кидал в консоль значения - конечный результат приходил undefined: undefined undefined... <-- типо такого, хотя дата данные ловит. comment переменная тоже ловит свои данные. Если я менял аякс тупо цепляя значения по дивам - оно работало, но коряво и немного не так (по тиву пустой кружок списка после комментов). А тут жму кнопку добавить и ничего не происходит. Во вкладке POST в необработанных данных кидает comment=+%A0%90%b0%b0 что-то по типу такого. После перезагрузки все добавляется. Выходит все работает исправно кроме аякса