[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: не шарю в js, помогите доработать
Gram
есть у меня два файла, скрин в аттаче.

test.php

Код
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 4.01 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" /><?php
?><html xmlns="http://www.w3.org/1999/xhtml" /><?php
?><head><?php
?><meta http-equiv="content-language" content="ru" /><?php
?><meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();

function ge(id)
{
   return document.getElementById(id);
}

function Create(){
if(navigator.appName == "Microsoft Internet Explorer"){
req = new ActiveXObject("Microsoft.XMLHTTP");
}else{
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query);
}

function Refresh()
{
   if( req.readyState == 4 )
   ge('ajax').innerHTML = req.responseText;
   else
   ge('ajax').innerHTML = '';

}
function Pusk()
{
var query;

   query ='txt='+encodeURIComponent(ge('myid').value);

Request(query);
}
</script>
<style>
.gt
{
padding: 0px 0px 3px 0px;}
.gm
{

background-color: #FFFFFF;
text-align: justify;
border-top: 3px solid #EEEEEE;
border-right: 3px solid #999999;
border-bottom: 3px solid #999999;
border-left: 3px solid #EEEEEE;
padding: 7px 20px 7px 20px;
height: 160px;
}
</style>
</head>
<body bgcolor="#eeeeee">

<table width="96%" height="500" align="center" cellpadding="0" cellspacing="0" border="0">
<tr>

<td  align="center">

<div class="gm"><div class="gt">

<div id="ajax"></div>

</div></div>

<input type='text' id='myid'  size="150">
<input type="button" value="Послать" onClick="Pusk()">

</td>
</tr>
</table>
<div align="center">бла бла бла необновляющийся контент</div>
</body>

</html>



и ajax.php


PHP
$txt = isset($_POST['txt'])?$_POST['txt']:NULL;
//sleep(3);
echo "<br>";
echo $txt;




вообще хочу сделать следующим образом: ajax.php вместо вывода введенногог текста на экран, будет сохранять текст в базе. Я ж думаю это не проблема, просто принять данные и записать?
Но как организовать постоянный вывод в <div></div> из базы пяти последних записей? php файл соответствующий, думаю не составит труда написать, один ньюанс только не ясен. как мне передать имя того зарегистрированного пользователя, который ввел сообщение, чтоб было надежнее, чем скрытое поле? Сессия будет работать в файле ajax.php?

могу предположить что этот скрипт почти мне подходит

Код
function doLoad(force) {

var query = document.getElementById('query').value;

var req = new Subsys_JsHttpRequest_Js();
req.onreadystatechange = function() {
if (req.readyState == 4) {
if (req.responseJS) {
document.getElementById('result').innerHTML = req.responseJS.m;
}}}
req.caching = false;
req.open('POST','otvet.php', true);
req.send({ q: query, test:303 });
doLoadUp();
}
var timeout = null;
function doLoadUp() {
if (timeout) clearTimeout(timeout);
timeout = setTimeout(doLoad, 1000);

}



вот только я совсем не шарю в js. помогите доработать функцию, которая будет постоянно обновлять содержимое экрана обращаясь к файлу php



Спустя 1 час, 1 минута, 23 секунды (16.09.2009 - 18:18) twin написал(а):
Цитата
Сессия будет работать в файле ajax.php?

Да, будет. А больше ничего не понял, что доработать то? То что написано, не работает что ли?

Спустя 18 минут, 45 секунд (16.09.2009 - 18:37) Gram написал(а):
файл test.php по нажатию кнопки передает данные в ajax.php, тот записывает данные в базу. а поле вывода сообщений не обращается к файлу otvet.php . Нужно что-то написать в форме, чтобы он к нему обращался. Я просто js знаю на 0%

А вообще нормально, то что кусочек сайта будет обновляться каждую секунду?

Спустя 8 минут, 44 секунды (16.09.2009 - 18:46) Nikitian написал(а):
Цитата (Gram @ 16.09.2009 - 15:37)
А вообще нормально, то что кусочек сайта будет обновляться каждую секунду?

Нет. Лучше использовать что-то типа этого для актуализации данных.

Спустя 2 минуты, 5 секунд (16.09.2009 - 18:48) twin написал(а):
Цитата
файл test.php по нажатию кнопки передает данные в ajax.php,

файл не может ничего ни куда передать. Там, где ты взял этот код, есть вот это, разберись сначала во взаимодействиях.
Тебе просто нужно сделать скрипт (один файл), который будет выдавать результат на запрос из аякса. А там у тебя стоит setTimeout(), правда как то весело... Уместнее setIntrval() был бы.
Цитата
А вообще нормально, то что кусочек сайта будет обновляться каждую секунду?

Смотря какая посещаемость. А то может и сервер рухнуть.

Спустя 14 минут, 25 секунд (16.09.2009 - 19:02) Gram написал(а):
спасибо, буду разбираться.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.