Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Почему не обновляется содержимое страницы (на AJAX)
 
 автор: vania   (28.02.2008 в 15:26)   письмо автору
 
 

У меня есть 2 файла:
index.html
getUpdatedBoardSales-ajax.php

<html>
 <head>
  <title>TEST</title>
  <link rel="stylesheet" type="text/css" href="boards.css" />
  <script language="javascript" type="text/javascript">
   var request = null;

   function createRequest() {
     try {
       request = new XMLHttpRequest();
     } catch (trymicrosoft) {
       try {
         request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (othermicrosoft) {
         try {
           request = new ActiveXObject("Microsoft.XMLHTTP");
         } catch (failed) {
           request = null;
         }
       }
     }

     if (request == null)
       alert("Error creating request object!");
   }

   function getBoardsSold() {
     createRequest();
     var url = "getUpdatedBoardSales-ajax.php";
     request.open("GET", url, true);
     request.onreadystatechange = updatePage;
     request.send(null);
  }

  function updatePage() {
    if (request.readyState == 4) {
      var newTotal = request.responseText;
         document.write(newTotal);
    }
  }
  function updateR() {
    setTimeout(getBoardsSold(), 3000);
  }
  </script>
 </head>

 <body onLoad="updateR()">
  <h1>&nbsp;</h1>

 </body>
</html>


<?php
$qdqd 
date("H/i/s");
echo 
$qdqd;
?>


При загрузке страницы index.html срабатывает функция updateR() которая должна отправить запрос на сервер и выводить время через каждые 3 сек, но этого почемуто не происходит, кто может объяснить почему?

   
 
 автор: bronenos   (28.02.2008 в 15:31)   письмо автору
 
   для: vania   (28.02.2008 в 15:26)
 

  function updateR() { 
    setTimeout(getBoardsSold, 3000); 
  }

   
 
 автор: vania   (28.02.2008 в 15:41)   письмо автору
 
   для: bronenos   (28.02.2008 в 15:31)
 

чёто не работает(((

   
 
 автор: sim5   (28.02.2008 в 15:41)   письмо автору
 
   для: vania   (28.02.2008 в 15:26)
 

А не проще ли все это реализовать у клиента на JS и не загружать такой мелочью сервер?

   
 
 автор: vania   (28.02.2008 в 15:56)   письмо автору
 
   для: sim5   (28.02.2008 в 15:41)
 

Мне нужно полачить данные с сервера через определенное время, без перезагрузки страницы. Чтобы вам было понятнее чё мне надо, я просто привел пример с временем.

   
 
 автор: vania   (01.03.2008 в 02:47)   письмо автору
 
   для: vania   (28.02.2008 в 15:56)
 

Мне надо из базы доставатьзначение и автоматически обновлять его с помощью аякса без предзагрузки старицы..
Если кому не трудно,напишите небольшой скриптик, буду очень благодарен!!!

   
 
 автор: mefestofel   (01.03.2008 в 12:08)   письмо автору
 
   для: vania   (28.02.2008 в 15:26)
 

js:
var response = '';
var update = '';
var ro = '';
var script = 'getUpdatedBoardSales-ajax.php';

function createRequestObject()
{
  var ro;

  if (window.XMLHttpRequest) {  ro = new XMLHttpRequest(); }
  else {
    ro = new ActiveXObject('Msxml2.XMLHTTP');
    if(!ro) { ro = new ActiveXObject('Microsoft.XMLHTTP'); }
  }

  return ro;
}

var http = createRequestObject();

function sndReq(id) {
    http.open('post', script+'?id='+id, true);
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();
        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            if ((update[0] != '') && (update[1] != '')) {
                 document.getElementById(update[0]).innerHTML = update[1];
               }
            }
        }
    }
}


getUpdatedBoardSales-ajax.php:
<?php
$date 
date("H/i/s"time());
echo (
'date|'.$date);
?> 


Как-то так в html надо прописать в нужном месте sndReq(id) , где id - идентификатор элемента страницы в котором надо обновить данные....

   
 
 автор: vania   (02.03.2008 в 19:00)   письмо автору
 
   для: mefestofel   (01.03.2008 в 12:08)
 

Спасибо большон за помощь, я во всем разобрался:
Просто когда отправляешь запрос надо
GET поменять на POST и всё пррекрасно работает)))
З.Ы. Ещё раз спасибо за помощь

   
 
 автор: TON1K   (04.03.2008 в 09:18)   письмо автору
 
   для: vania   (02.03.2008 в 19:00)
 

а как сделасть чтоб вышеприведенное работало?я так понимаю , что необходимые значения упущены - только код...необходимо то же сомое....

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования