Показать сообщение отдельно
  #10 (permalink)  
Старый 13.07.2009, 17:59
Интересующийся
Отправить личное сообщение для infocean Посмотреть профиль Найти все сообщения от infocean
 
Регистрация: 12.07.2009
Сообщений: 18

Подскажите плизз как лучше организовать вывод полученных(c помощью ajax) данных (из файла load.php) во всплывающее окошко.

Вот примерный код

файл index.html

<html>
<head>
<title>Тест</title>
<link href="templates/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="load.js"></script>
</head>
<body>
<div id="masthead">
</div>
<div id="top_nav">
	<span lang="ru">шапка</span></div>
<div id="container">
	<div id="left_col">
		<div>Привет infocean</div>
		<div>
			Новостей: 30<br />
			Комментариев: 600<br />
		</div>
	</div>
	<div id="right_col">
	</div>
	<div id="page_content">
		<table><tr>
		<td>Ник: infocean</td>
		<td><input type="hidden" id="idmen" value="1" /><a href="#" onclick="process()">НАЖАТЬ СЮДА!!!</a></td>
		</tr></table>
		<table><tr>
		<td>Ник: test</td>
		<td><input type="hidden" id="idmen" value="2" /><a href="#" onclick="process()">НАЖАТЬ СЮДА!!!</a></td>
		</tr></table>
		<table><tr>
		<td>Ник: test-2</td>
		<td><input type="hidden" id="idmen" value="3" /><a href="#" onclick="process()">НАЖАТЬ СЮДА!!!</a></td>
		</tr></table>
	</div>
</div>
<div id="footer">
</div>
</body>
</html>


файл load.js

var xmlHttp = AjaxObject();

// Создаём объект XMLHttpRequest
function AjaxObject() 
{
  // переменная для хранения ссылки на объект XMLHttpRequest
  var xmlHttp;
  // эта часть кода работает везде,кроме IE6
  try
  {
    // пытаемся создать объект XMLHttpRequest
    xmlHttp = new XMLHttpRequest();
  }
  catch(e) 
  {
    // предпологаем,что в качестве браузера используется IE6 или ниже
    var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
                                    "MSXML2.XMLHTTP.5.0",
                                    "MSXML2.XMLHTTP.4.0",
                                    "MSXML2.XMLHTTP.3.0",
                                    "MSXML2.XMLHTTP",
                                    "Microsoft.XMLHTTP");
    // пытаемся создать объект любой из версий данных в массиве
    for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) 
    {
      try 
      { 
        // пытаемся создать объект XMLHttpRequest
        xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
      } 
      catch (e) {}
    }
  }
  // возвращаем созданный объект или выводим сообщение об ошибке
  if (!xmlHttp)
	  alert("Error creating the XMLHttpRequest object.");
  else 
    return xmlHttp;
}

function process()
{
  if (xmlHttp)
  {
    try
    {
	  name = encodeURIComponent(document.getElementById("idmen").value);
      xmlHttp.open("GET", "load.php?name="+name, true);
      xmlHttp.onreadystatechange = handleServerResponse;
      xmlHttp.send(null);
    }
    catch(e)
    {
      displayError(e.toString());
    }
  }
}

function handleServerResponse() 
{
  page_content = document.getElementById("page_content");
  if (xmlHttp.readyState == 1)
  {
    page_content.innerHTML += "Request status: 1 (loading) <br/>";
  }
  else if (xmlHttp.readyState == 2)
  {
    page_content.innerHTML += "Request status: 2 (loaded) <br/>";
  }
  else if (xmlHttp.readyState == 3)
  {
    page_content.innerHTML += "Request status: 3 (interactive) <br/>";
  }
  else if (xmlHttp.readyState == 4) 
  {
    if (xmlHttp.status == 200) 
    {
      try
      {
        response = xmlHttp.responseText;
        page_content.innerHTML += "Request status: 4 (complete). Server said: <br/>";
        page_content.innerHTML += response;
      }
      catch(e)
      {
        alert("Error reading the response: " + e.toString());
      }
    } 
    else
    {
      alert("There was a problem retrieving the data:\n" + xmlHttp.statusText);
    }
  }
}


файл load.php

получает $_GET['name'], обрабатывает, выполняет запросы в базу, после чего в зависимости от условий выводит с помощью конструкции echo сообщение.

После выдачи пользователю сообщения,надо обновить всё, что есть в диве с id="left_col".

Заранее очень благодарен!!

Последний раз редактировалось infocean, 13.07.2009 в 18:04.
Ответить с цитированием