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

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

15.12.2019, 16:38. Показов 1573. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение/ Перевод https:/ / **********/ gallery/ thinkpad-x220-tablet-porn-gzoEAjs . . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru