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

Не работает простенький ajax-чатик на файловой системе
Здравствуйте) Не успел вчера ночью достать здесь всех со своим корявым аджакс-запросом (помогли разобраться, спс), как новая сложность с мини-чатиком. Не работает(( Файлов там несколько.

Это config.php с файлом для будущих сообщений
<?php

$filename = "messages.txt";

?>


Файл show.php с алгоритмом перебора файлов с сообщениями

<?php

require "config.php";

$file = file($filename);
$count = count($file);

for($i = $count; $i-- > 0;){
    echo $file[$i];
    echo "<br>";
}

?>


Файл send.php с получением данных из инпутов и внесением всего этого в файл-messages

<?php

require "config.php";
$sender = $_POST["sender"];
$text = $_POST["message"];
$message = "\n$sender написал $message";

$file = fopen($filename,"a");
fwrite($file,$message);
fclose($file);

?>

Файл-html собственно с разметкой и js-функциями для посылки и получения данных.

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Ajax</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <script type="text/javascript">
        function show(){
            $.ajax({
                url:"show.php",
                timeout:10000,
                success:function(data){
                    $("#messages").html(data)
                },
                error:function(){
                    $("#messages").html("Не удалось загрузить сообщение")
                }
            })
        }

        function send(){
            var sender = $("#sender").val()
            var message = $("#message").val()

        if(sender.length > 0 && message.length > 0){
            $.ajax({
                url:"show.php",
                type:"post",
                timeout:10000,
                data:{"sender":sender,"message":message},
                success:function(data){
                    document.getElementById("message").value = ""
                    $("#send_message_result").html("")
                },
                error:function(){
                    $("#send_message_result").html("Не удалось загрузить сообщение")
                }
            })
                } else if(sender.length==0){
                    $("#send_message_result").html("Введите имя");
                } else if(message.length==0){
                    $("#send_message_result").html("Введите текст");
            }
        }

        var Interval = 1000;
        show();
        setInterval("show()",Interval);
      
    </script>


</head>
<body>
<h1>Чат</h1>
Имя <br>
<input type="text" id="sender"><br>
Сообщение <br>
<textarea id="message" cols="30" rows="10"></textarea><br>
<input type="submit" value="send" onclick="send();">
<div id="send_message_result"></div>
<hr>
<div id="messages"></div>


</body>
</html>
Ответить с цитированием