Показать сообщение отдельно
  #1 (permalink)  
Старый 15.12.2019, 00:27
Аспирант
Отправить личное сообщение для Иса Мирзоев Посмотреть профиль Найти все сообщения от Иса Мирзоев
 
Регистрация: 15.04.2019
Сообщений: 72

БД ajax-чат не выводит сообщения
Приветствую. В базу данных все добавляется. Дамп, думаю, смысла нет прикладывать, там поля id,name,text,date. Я еще таймер повторного ajax-запроса должен был поставить, по идее, но точно не знаю, как он ставится))

<?php

//подключение к БД
function db_join(){
    static $db;
    if($db===null){
        $db = new PDO("mysql:host=localhost;dbname=ajax_jax","root","");
        $db->exec("SET USE UTF-8");
    }
    return $db;
}

//Вставка в БД
function db_query($name,$text){
    $bd = db_join();
    $sql = "INSERT INTO ajax(name,text) VALUES('$name','$text')";
    $query=$bd->prepare($sql);
    $query->execute();
    $info = $query->errorInfo();
    echo $info[2];
    return $query->fetchAll();
}


if(count($_POST) > 0){
    if(!empty($_POST["name"]) || !empty($_POST["text"])) {
        $name = $_POST["name"];
        $text = $_POST["text"];
        $db = db_query($name,$text);
    }
}


//Вывод из БД
function db_read(){
    $bd = db_join();
    $sql = "SELECT * from `ajax` ORDER BY `date` DESC";
    $query=$bd->prepare($sql);
    $query->execute();
    $info = $query->errorInfo();
    echo $info[2];
    return $query->fetchAll();
}

$messages = db_read();

?>


Джаваскрипт-файл (в нем косяк, думаю)
function funcSuccess(data){
    $(".message").html(data)
}

$(function(){
    $("form").submit(function(event){
        $.ajax({
            url:"content.php",
            type: "POST",
            data:{name: $(".name").val(),text: $(".text").val()},
            dataType:"html",
            success: funcSuccess
        })
    })
})


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Чат</title>
    <style>
        .message{
            border:1px solid #ccc;
            padding:10px;
            margin-bottom:20px;
        }

    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>
<form method="post" id="ajaxForm">
    <p>
        <label for="name" style="margin-right:8px">Имя</label>
        <br>
        <input type="text" name="name" class="name">
    </p>
    <p>
        <label for="text">Текст</label>
        <br>
        <textarea name="text" cols="21" rows="5" class="text"></textarea>
        <br>
    </p>
    <input type="submit" class="click">
</form>
<hr>
<?php if(!empty ($messages) ){ ?>
    <?php foreach($messages as $message){ ?>
        <div class="message">
            <p>Автор: <?= $message["name"]?>| Дата: <?= $message["date"]?></p>
            <div>Сообщение: <?= nl2br($message["text"])?></div>
        </div>
    <?php } ?>
<?php } ?>
<script src="script2.js"></script>
</body>
</html>

Последний раз редактировалось Иса Мирзоев, 15.12.2019 в 00:31.
Ответить с цитированием