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

Вывод страницы с комментариями без перезагрузки

12.12.2016, 13:19. Показов 2482. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня всем

Решил написать сюда, т.к. тема похожая. Суть в следующем - есть страница с комментариями, надо, чтобы они выводились без перезагрузки. В принципе, я это сделал, но беда в том, что после того, как комментарий появился, следующий добавить не получается, надо обновлять страницу. Я в JQuery не силен, так что прошу помощи. Подозреваю, что беда в файле JavaScript. Вот его код
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$(function() {
    $("#myBut").click(function(){
        var name = $("#name").val();
        var date = $("#date").val();
        var message = $("#message").val();
        var filter = $("#filter").val();
        $.ajax({
            type: "POST",
            url: "add.php",
            data: "&name=" + name + "&date=" + date + "&message=" + message + "&filter=" + filter,
            cache: false,
            success: function(){
                $('#main').load('index.php');//обновление страницы
 
            }
        });
        return false;
});
    
});
Код страницы
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!doctype html>
<html lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, maximum-scale=1">
<title>Комментарии</title>
<link rel="icon" href="favicon.png" type="image/png">
<link href="css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="css/style.css" rel="stylesheet" type="text/css"> 
<link href="css/font-awesome.css" rel="stylesheet" type="text/css"> 
<link href="css/animate.css" rel="stylesheet" type="text/css">
 
<!--[if lt IE 9]>
    <script src="js/respond-1.1.0.min.js"></script>
    <script src="js/html5shiv.js"></script>
    <script src="js/html5element.js"></script>
<![endif]-->
 
</head>
<body>
<?php
    require_once 'db.php';
?>
<div id="main">
<section id="Portfolio" class="content"> 
  
      
  
  <!-- Container -->
  <div class="container portfolio_title"> 
    <div class="section-title"><h2>Комментарии</h2> </div>
  </div>
  <!-- Container -->
  
  <div class="portfolio-top"></div>
  <div class="portfolio"> 
    <div id="filters" class="sixteen columns">
      <ul class="clearfix">
        <li><a id="all" href="#" data-filter="*" class="active"><h5>Все</h5></a></li>
        <li><a class="" href="#" data-filter=".plus"><h5>Положительные</h5></a></li>
        <li><a class="" href="#" data-filter=".minus"><h5>Отрицательные</h5></a></li>
      </ul>
    </div>
    <!--/Portfolio Filters --> 
    
    <!-- Portfolio Wrapper -->
    <div id="comment">
    <div class="isotope fadeInLeft animated wow" style="position: relative; overflow: hidden; height: 480px;" id="portfolio_wrapper"> 
      
    <?php
        $link = mysqli_connect($host, $user, $pass, $database) or die("Ошибка подключения к БД" . mysqli_error($link));
        mysqli_set_charset($link, "utf8");
 
        $query ="SELECT * FROM comments";
        $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
        
                
                //print_r($array);
        $data = array();
        while($row = mysqli_fetch_assoc($result)) {
        $data[] = $row;
        }
        
         foreach($data as $item) : ?>
      
       <div style="position: absolute; left: 0px; top: 0px; transform: translate3d(0px, 0px, 0px) scale3d(1, 1, 1); width: 337px; opacity: 1;" class="portfolio-item one-four isotope-item <?=$item['filter']?>">
        <div class="portfolio_img"> 
        <p class="user">Добавил: <span><?=$item['name'];?>,</span> Дата добавления: <span><?=$item['date_add'];?></span></p>
        <hr>
            <p><?=$item['text'];?></p> 
        </div>        
        </div>
        <?php endforeach; 
mysqli_close($link);    
    ?>
      
 
        </div>
 
    </div>
  
</div>
 
</section>
 
<div class="add_comment clearfix page_section">
<h2>Добавить комментарий</h2> 
<div class="container-fluid">
 
    <div class="row myRow">
        <div class="col-md-12">
            <form class="form-horizontal" role="form" action="add.php" method="post" id="form">
                <div class="form-group">
                    <label for="name" class="col-sm-2 control-label">Имя* </label>
                    <div class="col-sm-10">
                            <input type="name" name="name" class="form-control" id="name" />
                            <input type="hidden" id="date" name="date">
                    </div>
                </div>
                <div class="form-group">
                  <label for="message" class="col-sm-2 control-label">Cообщение*</label>
                            <div class="col-sm-10">
                                  <textarea name="message" id="message"></textarea>
                            </div>
              </div>
                </div>
                <div class="form-group">
                    <div class="col-sm-12">
                    <select name="filter" id="filter">
                        <option value="plus">Положительный</option>
                        <option value="minus">Отрицательный</option>
                    </select>
                        <button type="submit" class="btn btn-success myBtn" id="myBut">Отправить комментарий</button>
                    </div>
                </div>
            </form>
  </div>
</div>
</div>
    
    </div>
<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js/bootstrap.min.js"></script>
<script type="text/javascript" src="js/jquery-scrolltofixed.js"></script>
<script type="text/javascript" src="js/jquery.nav.js"></script> 
<script type="text/javascript" src="js/jquery.isotope.js"></script>
<script type="text/javascript" src="js/custom.js"></script>
<script type="text/javascript" src="js/ajax.js"></script>
 
</body>
</html>
Спасибо

 Комментарий модератора 
Один вопрос - одна отдельная тема!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2016, 13:19
Ответы с готовыми решениями:

Вывод вычислений без перезагрузки страницы
Есть кучка чекбоксов, каждый со своим value, при нажатии на каждый из них должно прибавляться число, либо вычитаться соответственно. ...

Вывод данных из БД без перезагрузки страницы
В Общем у меня есть скрипт, но он обновляет и добавляет кроме новых так и все старые function fetch_employee_data() { ...

Постраничный вывод, mysql сортировка без перезагрузки страницы
Как осуществить постраничный вывод, mysql сортировка без перезагрузки страницы(AJAX)? Отдельной страницей все прекрасно, а ajaxom выводит...

22
 Аватар для vettel
84 / 84 / 41
Регистрация: 14.02.2015
Сообщений: 320
12.12.2016, 21:49
SkazochNick, а в чем смысл этого дела?
JavaScript
1
2
3
success: function(){
                $('#main').load('index.php');//обновление страницы
 }
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 14
12.12.2016, 22:05  [ТС]
Это дело как раз и перегружает страницу
А как надо написать?
0
 Аватар для vettel
84 / 84 / 41
Регистрация: 14.02.2015
Сообщений: 320
12.12.2016, 22:18
SkazochNick, у вас же задача - без обновления страницы загрузить комменты. Зачем обновлять страницу?
Вы отправляете запрос на add.php. Этот пхп-файл должен вам вернуть сей каммент обратно, и вы его вставляете на страницу посредством DOM-методов. Вот и все.

И на будущее: перезагрузка страницы осуществляется методом location.reload(). В вашем случае страница реально в браузере не перезагружается, а в нее просто подгружается код из индекса.
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 14
13.12.2016, 11:17  [ТС]
Голову сломал. Написал
JavaScript
1
2
3
success: function(data){
$("#portfolio_wrapper").append(data);
}
#portfolio_wrapper - блок со всеми комментариями. Теперь в базу добавляется, но на странице не появляется. Только после перезагрузки. Может подскажете, как правильно сделать?
0
 Аватар для vettel
84 / 84 / 41
Регистрация: 14.02.2015
Сообщений: 320
13.12.2016, 15:15
SkazochNick, из этого куска кода ничего не ясно. Явных ошибок в нем нет.
Консоль смотрели? Содержание ответа сервера (data) смотрели?
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 14
13.12.2016, 15:42  [ТС]
Вот весь код
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$(function() {
    $("#myBut").click(function(){
        var name = $("#name").val();
        var date = $("#date").val();
        var message = $("#message").val();
        var filter = $("#filter").val();
        $.ajax({
            type: "POST",
            url: "add.php",
            data: "&name=" + name + "&date=" + date + "&message=" + message + "&filter=" + filter,
            success: function(data){
                $("#portfolio_wrapper").append(data);
            }
        });
        return false;
});
    
});
Вот посмотрите, как это выглядит - http://vkohan.zzz.com.ua/comment.loc/
0
 Аватар для vettel
84 / 84 / 41
Регистрация: 14.02.2015
Сообщений: 320
13.12.2016, 15:52
Цитата Сообщение от SkazochNick Посмотреть сообщение
Вот посмотрите, как это выглядит
Вы в консоль смотрели? У вас же там ошибка. Есть подозрение, что из-за нее ваш код вообще не выполняется. Устраните ее. Это первое.
Второе - выведите в консоль содержание ответа сервера (то есть data), чтобы понимать, в чем суть.
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
13.12.2016, 16:05
SkazochNick, как собираетесь выводить коммент, если в add.php стоит редирект на mail.ru?
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 14
13.12.2016, 16:10  [ТС]
Он не работает. Это я хотел проверить, как будет работать и забыл удалить. сейчас уберу

Добавлено через 3 минуты
Ошибки убрал. Как вывести в консоль ответ сервера?
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
13.12.2016, 16:25
Цитата Сообщение от SkazochNick Посмотреть сообщение
и забыл удалить
Фейспалмище
Как посмотреть ответ сервера в браузере: открываешь консоль разработчика, находишь вкладку сеть и смотришь запрос, который нужен.
Миниатюры
Вывод страницы с комментариями без перезагрузки  
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
13.12.2016, 16:26
Видите что приходит? А должен быть кусочек разметки для вставки в страницу
Цитата Сообщение от SkazochNick Посмотреть сообщение
JavaScript
1
2
3
success: function(data){
  $("#portfolio_wrapper").append(data);
}
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 14
13.12.2016, 16:27  [ТС]
Да, не приходит ничего. Как исправить? Подскажите
0
 Аватар для vettel
84 / 84 / 41
Регистрация: 14.02.2015
Сообщений: 320
13.12.2016, 16:29
Цитата Сообщение от SkazochNick Посмотреть сообщение
Да, не приходит ничего. Как исправить? Подскажите
Наверное, нормально написать add.php - так, чтобы он возвращал ответ.
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
13.12.2016, 16:31
SkazochNick, а вот это уже совсем другая история. Вам в другой раздел https://www.cyberforum.ru/php-beginners/
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 14
13.12.2016, 16:39  [ТС]
Вот файл add.php, что в нем не так?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
require_once 'db.php';
 
        $link = mysqli_connect($host, $user, $pass, $database) or die("Ошибка " . mysqli_error($link)); 
        mysqli_set_charset($link, "utf8");
 
        $name = trim(strip_tags($_POST["name"]));
        $date = date("j.n.Y");
        $message = trim(strip_tags($_POST["message"]));
        $filter = trim(strip_tags($_POST["filter"]));
 
        $query ="INSERT INTO comments VALUES(NULL, '$name','$date', '$message', '$filter')";
        $result = mysqli_query($link, $query) or die("Ошибка " . mysqli_error($link));
0
 Аватар для vettel
84 / 84 / 41
Регистрация: 14.02.2015
Сообщений: 320
13.12.2016, 16:46
SkazochNick, вам же написали - по поводу php есть раздел php.
А прежде чем туда идти, попробуйте найти в своем коде место, которое хоть что-то возвращает на клиент.
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 14
13.12.2016, 16:50  [ТС]
Какое-то непонятное отношение. Я попросил указать на ошибку в коде, конкретно, что не так. В ответ же получил только какие-то общие слова и в итоге отфутболивание на другую ветку форума.
Я уже перепробовал массу вариантов, прежде, чем написать сюда. Если вы такие мастера, то неужели в нескольких строках кода не можете увидеть ошибку и указать?

В общем, спасибо за помощь
0
 Аватар для vettel
84 / 84 / 41
Регистрация: 14.02.2015
Сообщений: 320
13.12.2016, 18:24
SkazochNick, причем здесь "отфутболивание"?
Вам ясно написали - проблема не в Js, а в PHP,и для этого есть отдельный раздел, где сидят именно php-программисты и отвечают.
Да и не видно по вашим 3-ем строкам кода, что вы "перепробовали массу вариантов".
В общем, нужно не обиженного из себя строить, а последовать совету и пойти в ветку php. И вообще нужно благодарным быть, что есть места, где помогают решить определенные задачи бесплатно.
0
0 / 0 / 0
Регистрация: 28.01.2015
Сообщений: 14
13.12.2016, 18:35  [ТС]
Если вы не заметили, то кода было не три строки, а полностью. В этом вы легко убедитесь, если заглянете вверх страницы.

Насчет файла PHP - его задача заключается в передаче данных в базу, с чем он прекрасно справляется. А вот то, что файл JS не получает от него данных, в этом я и просил помочь.

Что касается "массы вариантов", то вполне естественно, здесь их все приводить нет необходимости. Форум для того и существует, чтобы оказывать людям конкретную помощь. Кода не так много, чтобы нужно было потратить кучу времени на его разбор. Так что если бы вы просто исправили мою ошибку, то времени это заняло бы гораздо меньше, чем вы потратили на бессмысленные ответы.

Цитата Сообщение от vettel Посмотреть сообщение
И вообще нужно благодарным быть, что есть места, где помогают решить определенные задачи бесплатно.
Да уж, помогли вы весьма и весьма. Наверное, корона мешает такие простые задачи (на ваш взгляд) решать.
В общем, всех благ и успехов на ниве помощи новичкам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2016, 18:35
Помогаю со студенческими работами здесь

Select и вывод данных из базы без перезагрузки страницы
Здравствуйте. Надеюсь, в тот форум пишу. Задача - вывести список подразделений предприятия, и по выбору из списка показывать информацию о...

Вывод значений из бд при выборе select без перезагрузки страницы
Здравствуйте есть код в котором я из бд вывожу данные в селект подскажите как сделать чтоб при выборе определённого селект я мог вывести...

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

Динамическая подмена контента страницы по клику на ссылку, без перезагрузки всей страницы
Здравствуйте! Честно говоря точно не знал какими средствами можно реализовать, то что мне нужно, но думаю что скорее всего это jQuery. ...

Подмена контента страницы по клику на ссылку меню, без перезагрузки всей страницы
Доброго времени суток! у меня имеется два блока, один блок - меню иерархическое аккордеон на jquery, во втором блоке должен появляться...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
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
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru