• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Запрос к Mysql

  • Автор темы Автор темы Paster
  • Дата начала Дата начала
P

Paster

Всем доброго времи суток...

Хочу сделать так: после загрузки страницы через определенное время javascript делается запрос к базе mySQL, берет из нее данные и заносит изменения на страницу, НЕ ПЕРЕЗАГРУЖАЯ ее.
Желательно ограничиться javascript, PHP, mySQL.

буду очень благодерен за Вашу помощь...
 
ключевое слово ajax
еще более точное XMLHttpRequest
для начала
 
ключевое слово ajax
еще более точное XMLHttpRequest
для начала
Спасибо большое. Прочитал про XMLHttpRequest на вике.
После этого нашел пример
Сделал по аналогии скрипт, но все равно вывести данные из MySQL не получается=(.

Вот то, что я написал:
Код:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Пример</title>
<script language="JavaScript" type="text/javascript">
function GetNewVars(name,text,date)
{
document.getElementById('name').innerHTML = name;
document.getElementById('text').innerHTML = text; 
document.getElementById('date').innerHTML = date; 
};

function processReqChange() 
{
if (req.readyState == 4) 
{
if (req.status == 200) 
{
response = req.responseXML.documentElement;
method = response.getElementsByTagName('method')[0].firstChild.data;
name = response.getElementsByTagName('name')[0].firstChild.data;
text = response.getElementsByTagName('text')[0].firstChild.data;
date = response.getElementsByTagName('date')[0].firstChild.data;

eval(method + ' (name,text,date)');
};
};
};

function loadXMLDoc(url) 
{
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send(null);
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req) {
req.onreadystatechange = processReqChange;
req.open("GET", url, true);
req.send();
};
};
};

function Timer()
{
Second--;
document.getElementById('time').innerHTML = Second;
if (Second == Update)
{Update = Second - 10;
id++;
url = 'http://localhost/js_test.php?id='+id;
loadXMLDoc(url);
};
};	

Second = 60;
Update = Second - 10;
id = 1;

interval = setInterval(Timer,1000);
</script>
</head>

<body>

<div id='time'></div>
<div id='name'></div>
<div id='text'></div>
<div id='date'></div>

<script type="text/javascript">document.getElementById('time').innerHTML = Second;</script>
</body>
</html>

// Файл test.php делает отсчет времени. На каждой 10й секунде должен происходить запрос к базе и данные из нее отображаться в тегах "div"

Код:
<?php 
include("blocks/connect.php");
$id = $_GET["id"];
$id = trim($id);
$r_info = mysql_query("SELECT * FROM news WHERE id = $id LIMIT 1");
$m_info = mysql_fetch_array($r_info);
echo ('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>');
echo("<response>");
echo("<name>".$m_info["name"]."</name>");
echo("<text>".$m_info["text"]."</text>");
echo("<date>".$m_info["date"]."</date>");
echo("</response>");

?>
// Файл js_pest.php обрабатывает значение идентификатора отправленного методом GET и вытаскивает из базы новость по id. (По крайней пере он должен это делать)

При тестировании на IE он выдает ошибку:
IE сказал(а):
Строка:21
Символ: 4
Ошибка: 'response' есть null или не является объектом

Тестировал "js_test.php" напрямую, выдает, по моему то, что нужно.

Помогите мне, пожалуйста. Я уже голову себе сломал%)
PS Оба предоставленные мною скрипта были написаны только, чтобы продемонстрировать эту ошибку. Они протестены, и суть ошибки такая же, как и в основном скрипте, с которым я работаю.
PPS include("blocks/connect.php"); здесь происходит соединение с базой. Оно точно работает корректно.
 
на первый взгляд функция function processReqChange() не сможет обратится к обьекту req с функции function loadXMLDoc(url).
добавь после строки
<script language="JavaScript" type="text/javascript">
строку
var req;
 
ты получаешь элемент getElementsByTagName('method')
но в твоём пхп файле нет элемента method
и переменная с именем date не очень удачна, есть зарезарвированная функция date может конфликт быть
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Похожие темы