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

HTML+CSS+JavaScript

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

 

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

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

тема: Subsys_JsHttpRequest
 
 автор: itica   (17.05.2006 в 20:15)   письмо автору
 
 

Прочитал статью по адресу http://dklab.ru/lib/Subsys_JsHttpRequest/ , но не совсем понял как заставить Subsys_JsHttpRequest работать на сайте. Нет ли где ещё какой нибудь информации по данному вопросу?

   
 
 автор: Axxil   (17.05.2006 в 22:04)   письмо автору
 
   для: itica   (17.05.2006 в 20:15)
 

а примеры которые там даны не работают?
Я делал так поначалу. Методом тыка вставлял в разные места echo и alert и таким образом препарировал эту библиотеку, пока не достиг некоторого понимания.

PS по-моему там очень всё довольно прозрачно описано. А что конкретно не понятно?

   
 
 автор: itica   (19.05.2006 в 20:31)   письмо автору
 
   для: Axxil   (17.05.2006 в 22:04)
 

Вообщем мне хотелось бы посмотреть готовый скрипт, который на 1 странице выводит сообщения и имеет форму, при отправке которой происходит обновление информации, также нужно чтобы текст брался из базы и обновлялся каждые 30 секунд. С теми примерами не удалось разобраться, хочется чего то конкретного и сухого.

   
 
 автор: Zepur   (25.05.2006 в 19:27)
 
   для: itica   (17.05.2006 в 20:15)
 

Здравствуйте!
Я вот нашёл в сети такой пример исспользования данной библиотеки:
test.html

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>
body {overflow:auto;margin:10px;font-family:Verdana;font-size:11px;}
</style>

<script language="JavaScript" src="dk_JsHttpRequest/Js.js"></script>
<script>
// загрузка данных с сервера без прямого обновления страницы
// с использованием библиотек Subsys_JsHttpRequest ( разработчик - "dk lab" | http://dklab.ru/ )

function dk_JsHttpRequest(force)
{var query = '' + document.getElementById('param1').value;
var req = new Subsys_JsHttpRequest_Js();
req.onreadystatechange = function()
{if (req.readyState == 4)
{if (req.responseJS)
{document.getElementById('res').innerHTML += 
'md5('+(req.responseJS.q||'undefined')+') = ' + (req.responseJS.md5||'undefined') + '<br>';
}
}
}
req.caching = true;
req.open('POST', 'dk_JsHttpRequest.php?test=abc', true);
req.send({ q: query, test:303 });
}
</script>

<script src="" id="dataloader"></script>
</head>
<body>
<br>
<b>Запрос :</b> <input type="text" id="param1" />
<br><br>
<input type="button" value="Subsys_JsHttpRequest" onclick="dk_JsHttpRequest(true)" />
<br><br><br>
<div id="res" style="background:#6699cc;border:1px solid darkblue;color:white;font-family:Verdana;font-size:11px;padding:10px;width:400px;height:300px;overflow:auto;">
</div></script>
</body>
</html>

dk_JsHttpRequest.php:

<?

require_once "dk_JsHttpRequest/config.php";
require_once 
"dk_JsHttpRequest/Php.php";

$JsHttpRequest =& new Subsys_JsHttpRequest_Php("windows-1251");

$_RESULT = array(
  
"q"     => $_REQUEST['q'],
  
"md5"   => md5($_REQUEST['q']),
); 

?>

Так как с JAVA-SCRIPT не очень, не могу понять что здесь надо изменить, чтобы например вместо кода md5 вытаскивалась запись из БД. Куда вставлять этот код, который будет вытаскивать содержимое БД?

   
 
 автор: itica   (26.05.2006 в 19:10)   письмо автору
 
   для: Zepur   (25.05.2006 в 19:27)
 

Во 2 файл помойму, но куда, точно сказать не могу.

   
 
 автор: Zepur   (26.05.2006 в 21:42)
 
   для: itica   (26.05.2006 в 19:10)
 

Ну сколько можно игнорировать тему?!

   
 
 автор: Artem S.   (26.05.2006 в 22:39)   письмо автору
 
   для: Zepur   (26.05.2006 в 21:42)
 

Надо задавать вопрос там, где это было опубликовано. Автор явно лучше разбирается в коде.

   
 
 автор: 1999   (27.05.2006 в 12:20)   письмо автору
 
   для: Artem S.   (26.05.2006 в 22:39)
 

а разве эта штука не есть предок (или последователь) XAJAX'а, SAJAX'а, SMARTY итд.?

   
 
 автор: Axxil   (27.05.2006 в 13:03)   письмо автору
 
   для: Zepur   (25.05.2006 в 19:27)
 

В массив $_RESULT заносятся результаты работы скрипта на сервере. Прямо в массиве данные передаются яве, где могут быть вытащены посредством конструкции вида:


req.responseJS.md5 (md5 - элемент массива в $_RESULT)


Теперь, я надеюсь становится понятным как работать с БД

<? 

require_once "dk_JsHttpRequest/config.php"
require_once 
"dk_JsHttpRequest/Php.php"

$JsHttpRequest =& new Subsys_JsHttpRequest_Php("windows-1251"); 

$sql 'select name,surname from users where user_id='.$_REQUEST['q']; // Параметр передаваемый из поля ввода например.

$query mysql_query($sql);
$r mysql_fetch_assoc($query);

$_RESULT = array( 
  
"q"     => $_REQUEST['q'], 
  
"md5"   => md5($_REQUEST['q']), 
  
"name" => $r['name'],
  
"surname"=>$r['surname'],
); 

?> 

   
 
 автор: Zepur   (27.05.2006 в 18:53)
 
   для: Axxil   (27.05.2006 в 13:03)
 

Спасибо!

   
 
 автор: itica   (29.05.2006 в 17:43)   письмо автору
 
   для: Zepur   (27.05.2006 в 18:53)
 

Решил написать чат на этой системе. Написал код файла dk_JsHttpRequest.php:

<?
include "config.php";
require_once 
"dk_JsHttpRequest/config.php";
require_once 
"dk_JsHttpRequest/Php.php";

$JsHttpRequest =& new Subsys_JsHttpRequest_Php("windows-1251");

$dano=$_REQUEST['q'];

 
$zapros mysql_query("select * from arxiv;");
if(
$zapros)
{
  while(
$row mysql_fetch_object($zapros))
  {
$_RESULT = array(
  
"name" => $row->name,
  
"mes" => $row->mes,
); 
}
}
else
{
  echo 
mysql_error();
  exit();
}

?>

Но когда прихоит новый пользователь, ему выводится только последнее сообщение (нужно, чтобы выводились все данные из таблицы), к тому же когда происходит повторное обновление снова выводится последнее сообщение, даже если оно уже было выведено (появляется 2 одинаковых сообщения).
Подскажите, как избежать данных ошибок?

   
 
 автор: itica   (29.05.2006 в 22:23)   письмо автору
 
   для: itica   (29.05.2006 в 17:43)
 

Может где есть готовый пример? Это вообще возможно?

   
 
 автор: Axxil   (30.05.2006 в 09:24)   письмо автору
 
   для: itica   (29.05.2006 в 17:43)
 

Всё правильно. Всегда будет выводится одна и та же строка.
Посмотрите внимательно:

<?
while($row mysql_fetch_object($zapros)) 

$_RESULT = array( 
  
"name" => $row->name
  
"mes" => $row->mes
); 
?>

По выходу из цикла элементы $_RESULT будут иметь значения последней записи результат запроса.
В вашем случае нужно начерное запихать все name в одну строку, mes в другую, передать и уже в JS разобрать на составляющие.

<?
while($row mysql_fetch_object($zapros)) 

  
$name.=$row->name."|";
  
$mess.=$row->mes."|";
); 
$_RESULT = array( 
  
"name" => $name
  
"mes" => $mess
}
?>



Кривовато конечно, но другого метода я ещё не придумал...

   
 
 автор: itica   (30.05.2006 в 10:16)   письмо автору
 
   для: Axxil   (30.05.2006 в 09:24)
 

Огромное спасибо!!!
Только я в JS не силён :(
Может подскажите как лучше разбить строку при получении?

   
 
 автор: itica   (30.05.2006 в 18:31)   письмо автору
 
   для: itica   (30.05.2006 в 10:16)
 

Может есть уже где нибудь готовый чат на этой системе?

   
 
 автор: itica   (31.05.2006 в 13:32)   письмо автору
 
   для: itica   (30.05.2006 в 18:31)
 

---

   
Rambler's Top100
вверх

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