Запрос к Mysql

Тема в разделе "HTML, CSS, XML, JavaScript", создана пользователем Paster, 9 сен 2009.

  1. Paster

    Paster Гость

    Репутация:
    0
    Всем доброго времи суток...

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

    буду очень благодерен за Вашу помощь...
     
  2. etc

    etc Гость

    Репутация:
    0
    Не возражаем.
     
  3. Paster

    Paster Гость

    Репутация:
    0
    Проблема в том, что не получается. Помогите, пожалуйста. буду очень презнателен.
     
  4. ????

    ???? Гость

    Репутация:
    0
  5. etc

    etc Гость

    Репутация:
    0
    Что конкретно?
     
  6. Paster

    Paster Гость

    Репутация:
    0
    Спасибо большое. Прочитал про XMLHttpRequest на вике.
    После этого нашел пример http://www.webmascon.com/topics/technologies/13a.asp
    Сделал по аналогии скрипт, но все равно вывести данные из MySQL не получается=(.

    Вот то, что я написал:
    Код (Text):
    <!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"

    Код (Text):
    <?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 он выдает ошибку:
    Тестировал "js_test.php" напрямую, выдает, по моему то, что нужно.

    Помогите мне, пожалуйста. Я уже голову себе сломал%)
    PS Оба предоставленные мною скрипта были написаны только, чтобы продемонстрировать эту ошибку. Они протестены, и суть ошибки такая же, как и в основном скрипте, с которым я работаю.
    PPS include("blocks/connect.php"); здесь происходит соединение с базой. Оно точно работает корректно.
     
  7. alexdrob

    alexdrob Гость

    Репутация:
    0
    на первый взгляд функция function processReqChange() не сможет обратится к обьекту req с функции function loadXMLDoc(url).
    добавь после строки
    <script language="JavaScript" type="text/javascript">
    строку
    var req;
     
  8. Paster

    Paster Гость

    Репутация:
    0
    К сожалению, ни чего не изменилось=( Спасибо за помощь=)
     
  9. alexdrob

    alexdrob Гость

    Репутация:
    0
    ты получаешь элемент getElementsByTagName('method')
    но в твоём пхп файле нет элемента method
    и переменная с именем date не очень удачна, есть зарезарвированная функция date может конфликт быть
     
Загрузка...

Поделиться этой страницей