Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5

Ajax. Не могу вывести полученные данные из формы

15.12.2019, 16:38. Показов 1597. Ответов 8

Студворк — интернет-сервис помощи студентам
Приветствую. Пробую еле-еле написать мини-чатик, человек с другого форума многое рассказал, спасибо ему. Ситуация такая: данные отсылаются, обрабатываются, добавляются в БД, вытаскиваются из БД, возвращаются, НО при попытке вывода их в консоль, не отображаются там (вернее, отображаются в консоли на 0.3 секунды сразу после клика по кнопке "отправить" и пропадают потом навсегда, до следующего клика), что с этим делать и как на страницу вставить "полученные" данные, я не знаю... Прошу помощи, спасибо.
п.с. ошибок в консоли нет, там вообще пустота.

Сама страница с формами

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<!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>
<div class="message"></div>
<script src="script2.js"></script>
</body>
</html>


Серверная часть (в БД добавляется, поля id name text date)



PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?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();
}
 
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();
    return $query->fetchAll(PDO::FETCH_ASSOC);
}
 
exit(json_encode(db_read()));
 
?>

JS-файл, который у меня и не хватает ума завершить...

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function funcSuccess(data){
    $.each(data, function() {
        console.log(this.id, this.name, this.text, this.date) 
    })
 
}
 
$(function(){
    $("form").submit(function(event){
        $.ajax({
            url:"content.php",
            type: "POST",
            data:{name: $(".name").val(),text: $(".text").val()},
            dataType:"json",
            success: funcSuccess
        })
    })
})
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.12.2019, 16:38
Ответы с готовыми решениями:

Не выводит данные полученные ajax запросом
Есть простой код с помощью ajax посылаю запрос на сервер и он отсылает обратно обычную строку, и после получение результата хочу просто...

Вынести полученные данные ajax за пределы функции
var result = $.ajax ({ url: &quot;wmark.php&quot;, type: &quot;POST&quot;, data: {&quot;column&quot;: column, &quot;mark&quot;: mark}, dataType: &quot;html&quot;, ...

Как правильно считать данные, полученные через Ajax?
Ajax отправляет в php-скрипт: var name = $('#name').val(); var phone = $('#phone').val(); var dataString =...

8
380 / 230 / 115
Регистрация: 22.11.2016
Сообщений: 379
15.12.2019, 18:13
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
event.preventDefault();
 
$(function(){
    $("form").submit(function(event){
        event.preventDefault();
        $.ajax({
            url:"content.php",
            type: "POST",
            data:{name: $(".name").val(),text: $(".text").val()},
            dataType:"json",
            success: funcSuccess
        })
    })
})
0
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5
15.12.2019, 18:29  [ТС]
Уау)) В консоль все вывелось) Спасибо!) Но как на страницу вывести в форме массива?)
$(".message").text(data) впихивает туда объект, а не элементы массива
0
380 / 230 / 115
Регистрация: 22.11.2016
Сообщений: 379
15.12.2019, 18:29
JavaScript
1
2
3
4
5
6
7
8
9
10
function funcSuccess(data) {
        $.each(data, function(i, el) {
            //console.log(el);
            $(".message").append(`<p>
                ID: ${el.id} 
                NAME: ${el.name}
                TEXT: ${el.text}
                DATE: ${el.date}</p>`);
        });
    }
0
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5
15.12.2019, 18:55  [ТС]
А Вы уверены, что тут не должно быть цикла никакого?) Он у меня просто почему-то не добавляет данные в бд, а выводит после каждого сообщения одну тестовую запись (я ее через sql-приложение ввел), что бы я ни написал, всегда одна и та же первая запись выводится и все)
0
380 / 230 / 115
Регистрация: 22.11.2016
Сообщений: 379
15.12.2019, 19:15
$.each - пробегает по вашим данным

JavaScript
1
2
3
4
5
6
function funcSuccess(data){
    $.each(data, function() {
        console.log(this.id, this.name, this.text, this.date) 
    })
 
}
заменить на

JavaScript
1
2
3
4
5
6
7
8
9
10
function funcSuccess(data) {
        $.each(data, function(i, el) {
            //console.log(el);
            $(".message").append(`<p>
                ID: ${el.id} 
                NAME: ${el.name}
                TEXT: ${el.text}
                DATE: ${el.date}</p>`);
        });
    }
Добавлено через 8 минут
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!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">NAME</label><br>
            <input type="text" name="name" class="name">
        </p>
        <p>
            <label for="text">TEXT</label><br>
            <textarea name="text" cols="21" rows="5" class="text"></textarea><br>
        </p>
        <input type="submit" class="click">
    </form>
    <hr>
    <div class="message"></div>
 
    <script type="text/javascript">
        "use strict";
 
        function funcSuccess(data) {
            $.each(data, (i, el) => {
                $(".message").append(`<p>
                    ID: ${el.id} 
                    NAME: ${el.name}
                    TEXT: ${el.text}
                    DATE: ${el.date}</p>`);
            });
        }
         
        $("form").submit(e => {
            e.preventDefault();
            $.ajax({
                url:"content.php",
                type: "POST",
                data: { name: $(".name").val(), text: $(".text").val() },
                dataType: "json",
                success: funcSuccess
            });
        });
    </script>
</body>
</html>
0
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5
15.12.2019, 19:17  [ТС]
Спасибо, все хорошо)) А можно сделать, чтобы автоподгрузка была каждые, скажем, полсекунды? Знаете, как в чате вк: ты ничего не делаешь, а сообщения сами прилетают. Пока у меня по кнопке отправки только обновление происходит сообщений. Нужно какой-то интервал поставить на отправку ajax-запросов, кажется. Нет?)
0
380 / 230 / 115
Регистрация: 22.11.2016
Сообщений: 379
15.12.2019, 19:26
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!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">NAME</label><br>
            <input type="text" name="name" class="name">
        </p>
        <p>
            <label for="text">TEXT</label><br>
            <textarea name="text" cols="21" rows="5" class="text"></textarea><br>
        </p>
        <input type="submit" class="click">
    </form>
    <hr>
    <div class="message"></div>
 
    <script type="text/javascript">
        "use strict";
 
        function funcSuccess(data) {
            $(".message").html("");
            $.each(data, (i, el) => {
                $(".message").append(`<p>
                    ID: ${el.id} 
                    NAME: ${el.name}
                    TEXT: ${el.text}
                    DATE: ${el.date}</p>`);
            });
        }
         
        $("form").submit(e => {
            e.preventDefault();
            $.ajax({
                url:"content.php",
                type: "POST",
                data: { name: $(".name").val(), text: $(".text").val() },
                dataType: "json",
                success: funcSuccess
            });
        });
 
        $(document).ready(() => {
            setInterval(() => {
                $.ajax({
                    url:"content.php",
                    type: "GET",
                    dataType: "json",
                    success: funcSuccess
                });
            }, 5000);
        });
    </script>
</body>
</html>
0
0 / 0 / 0
Регистрация: 15.12.2019
Сообщений: 5
15.12.2019, 19:33  [ТС]
Все супер, только как модифицировать SQL-запросы, чтобы не выбирались те записи, которые уже были выбраны?) А-то пока что сообщения клонируются)))
p.s. Вот мой запрос на вставку.
"SELECT * FROM ajax ORDER BY `date` DESC LIMIT 1"
Он выбирает последний элемент. По итогу, любое последнее сообщение повторно отправляется бесконечное число раз с интервалом))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.12.2019, 19:33
Помогаю со студенческими работами здесь

Как достать данные из формы, полученные в ASP и сохранить на диск
Всем привет. Есть проблемма, которую не могу решить. Суть в следующем. Некоторое приложение получает некоторые текстовые данные...

Как передать данные полученные из asp формы в приложение Oracle
Здравствуйте. Сначала я приведу код ASP страницы. using System; using System.Collections.Generic; using System.Linq; using...

вывести данные, полученные от клиента, в ListView
Здравствуйте уважаемые программисты у меня возникла проблема нужно написать программу сервер и клиент на компонентах ServerSocket и...

Как полученные данные с формы занести в поисковую строку Яндекс или Google?
Разрабатываю алгоритм проверки уникальности текста с помощью PHP скрипта. Хочу узнать, возможно ли полученные данные с формы занести в...

Как в cackePHP вывести на страницу данные полученные из БД?
В controller получаю из БД необходимые данные (рис 1). Нужно вывести их в соответствие с столбцами станицы (рис 2) в view. (Рис 3 код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru