AJAX подгрузка данных.
#21
Отправлено 23 Июль 2014 - 11:26
Мне бы реально работающий простой пример... что ж я не так то делаю почему переменная $x не отображается?
#22
Отправлено 23 Июль 2014 - 11:27
Цитата
Неверно, в обоих вариантах, т.к. у вас выводится только один $x, а не все нужные строки. Если вам нужно передать массив, используйте JSON, он преобразует массив в строку, или свой вариант (хотя JSON наиболее удобен). Подробнее читайте в инете, там полно примеров по аяксу.
#23
Отправлено 23 Июль 2014 - 11:29
#24
Отправлено 23 Июль 2014 - 11:34
Цитата
Где именно не отображается? Я же написал, что аякс - это скрытый запрос, каким образом то вы его увидеть то собрались? Еще раз: результат должна обрабатывать функция, которую вы задали в параметрах отправки запроса из JS, а уже она может вывести данные или вставить их в код страницы, или вообще как-то скрыто обработать, без всякого явного вывода.
#25
Отправлено 23 Июль 2014 - 11:51
#26
Отправлено 23 Июль 2014 - 12:16
Выполняем запрос к БД:
if ($_REQUEST['ajax'] == 1) { $sqlQuery = "SELECT f2640 as test FROM ".DATA_TABLE."210 ORDER BY add_time DESC LIMIT 1"; $result = mysql_query($sqlQuery); while ($row = sql_fetch_array($result)) { $x = $row['test']; } echo $x; exit; }И дальше запускаем функцию:
<script> function show_data() { $.ajax({ dataType: "html", url: "http://clientbase.local/report.php?id=460&ajax=1", type: "post", success: function(html){ $("#div_data").html(" КАК СЮДА ВСТАВИТЬ ДАННЫЕ КОТОРЫЕ ВОЗВРАЩАЕТ ЗАПРОС"); } }); } var timeInt=3000; show_data(); setInterval('show_data()',timeInt); </script> <div id="div_data"></div>
Вопрос!!! Как вернуть данные с запроса????
#27
Отправлено 23 Июль 2014 - 12:37
$result = mysql_query($sqlQuery); while ($row = sql_fetch_array($result)) { $x = $row['test']; } echo $x; exit; }
Уже спрашивал вас: какой смысл прогонять запрос циклом по строкам, если выводите только значение из последней строки (т.к. остальные просто перезаписываются)? Для теста это конечно пойдет (хоть какой-то вывод), но смысл? С тем же успехом можно вывести просто echo "test" для примера.
Цитата
Смотрим сюда. В вашем примере соответственно, все данные лежат в переменной html (т.к. именно она указана аргументом в функции, вставленной в sucess). Далее, функция в этом же примере вставляет некий текст в некий элемент на странице с id="div_data". Если вам нужно вставить туда именно ваш результат, соответственно заменяете это текст на переменную html. В реальности, код в этой функции может быть какой угодно (какой сами захотите), не обязательно такой как в примере, это самый простой вариант можно сказать. Например, вначале может потребоваться как-то обработать результат.
#28
Отправлено 23 Июль 2014 - 12:44
#29
Отправлено 23 Июль 2014 - 12:48
#30
Отправлено 23 Июль 2014 - 12:49
#31
Отправлено 23 Июль 2014 - 12:50
Цитата
Ну так я вас предупреждал что тут не все так просто. Если вы не профессиональный программист, то вам вообще лучше не лезть в эту область. Программисты то не сразу все понимают.
#33
Отправлено 23 Июль 2014 - 12:54
if ($_REQUEST['ajax'] == 1) { $sqlQuery = "SELECT f2640 as test FROM ".DATA_TABLE."210 ORDER BY add_time DESC LIMIT 10"; $result = mysql_query($sqlQuery); while ($row = sql_fetch_array($result)) { $x = $row['test']; echo $x."<br>"; } exit; }
Теперь у меня как раз выводится 10 последних записей из таблицы.
Еще раз благодарю Вас. Надо побольше проникнуться этой темой!
#34
Отправлено 28 Июль 2014 - 10:16
#35
Отправлено 28 Июль 2014 - 14:35
#36
Отправлено 30 Июль 2014 - 05:50
Получается что мы по запросу возвращаем 10 крайних записей в БД. Каждый раз. Но, новых из них бывает не больше 3х.
Получается мы как-то должны сравнить запись которая возвращается с запроса и существующую запись. И вывести то что новое... ))) Так?
#37
Отправлено 30 Июль 2014 - 09:27
#38
Отправлено 30 Июль 2014 - 09:40
0. Объявили q=0.
1. Дали запрос, открыли цикл с 10 шагами.
2. Получили новый ответ и сравнили каждую строку ответа с первой текущей строкой.
3. Присвоили q=++.
4. Если найдено совпадение - то вышли из цикла.
5. Удалили в новом ответе 10-q нижних строк и присвоили стиль
6. Удалили в текущем ответе первые q строк
7. Сложили ответы
8. Вывели.
#39
Отправлено 30 Июль 2014 - 10:23
Как альтернатива кстати, можно в запросе на аякс задавать маркер, по которому отбирать не 10 последних записей, а только свежие. Тогда и сверять ничего не надо. И это больше соответствует идеологии аякса, по которому мы запрашиваем только те данные, которые нам нужны и которые необходимы для обновления, не меняя при этом то что остается неизменным.
#40
Отправлено 30 Июль 2014 - 18:39
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных