1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Запрос к Mysql

Тема в разделе "Web - программирование", создана пользователем 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 не получается=(.

    Вот то, что я написал:
    Код:
    <!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 он выдает ошибку:
    Тестировал "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 может конфликт быть
     
Загрузка...

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