Всем привет, подскажите пожалуйста как выводить записи из таблицы БД
MySQL
без перезагрузки страницы? Допустим если в БД
добавилась новая строка, то мне ее выведет на страницу без перезагрузки. Скиньте хорошую статью где описывается реализация или может у вас есть простой пример чтобы посмотреть и понять хотя бы суть как это должно работать.
Вот рабочий пример реализации ajax
с помощью jquery
файл index.php
:
<?php
function is_ajax() {
return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
}
if (is_ajax() && isset($_POST['get_data'])) {
$pdo = new PDO("mysql:host=localhost;dbname=DBNAME;charset=utf8", 'root', 'PASSWORD');
$pr = $pdo->prepare("SELECT * FROM `main` ");
$pr->execute();
$data=$pr->fetchAll();
echo json_encode(array(
'ok' => 'AJAX OK!!!',
'data'=>$data
));
exit();
}
?>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
<a id="get_data">Получить данные в браузер</a>
<script>
$("document").ready(function () {
$("#get_data").click(function (event) {
event.preventDefault();
var data = {"get_data":1};
$.ajax({
type: "POST",
dataType: "json",
url: "index.php",
data: data,
success: function (r) {
console.log(r);
// r будет содержать "ответ" из PHP
}
});
return false;
});
});
</script>
</body>
</html>
С помощью echo json_encode(array('ok' => 'AJAX OK!!!'));
мы отправляем ответ нашему браузеру и в панели разработчика можем увидеть ответ.
Нужно обратить внимание что пароли и важные данные принято передавать post
методом.
Используйте например PDO
для выборки своих данных из mysql
или oracle
:D затем вы получите массив и сможете отправить этот массив данных в браузер без перезагрузки страницы.
Тут есть 2 основных подхода:
1) polling - опрашивать сервер (например при помощи ajax) раз в промежуток времени и выводить новые записи из БД, если они там появились. Этот подход имеет ряд недостатков: - данные появляются не мнгновенно, а только при следующем опросе сервера - большая нагрузка на сервер - больше трафика от клиента частично 2 последних недостатка можно уменьшить, если использовать заголовки кэширования HTTP
2) поддерживать постоянное соединение с сервером и со стороны сервера отправлять данные сразу после их добавления. Для этого можно использовать, например, websocket. Это решение несколько сложнее в реализации, но не имеет таких недостатков как у polling.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Суть всей задачи, которую я себе придумал - нужно сделать так, чтобы первый объект запускался функцией setInterval, причём не важно сколько раз,...
Почему не обновляются storage? Как сделать так чтобы данные приходя, записывались и на моей странице автоматически изменялись? Если выполнить...
В MongoDB можно создать индекс для удаления документа по времени (TTL)Имеется ли подобные средства для обновления документа