|
|
|
| Прочитал статью по адресу http://dklab.ru/lib/Subsys_JsHttpRequest/ , но не совсем понял как заставить Subsys_JsHttpRequest работать на сайте. Нет ли где ещё какой нибудь информации по данному вопросу? | |
|
|
|
|
|
|
|
для: itica
(17.05.2006 в 20:15)
| | а примеры которые там даны не работают?
Я делал так поначалу. Методом тыка вставлял в разные места echo и alert и таким образом препарировал эту библиотеку, пока не достиг некоторого понимания.
PS по-моему там очень всё довольно прозрачно описано. А что конкретно не понятно? | |
|
|
|
|
|
|
|
для: 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 вытаскивалась запись из БД. Куда вставлять этот код, который будет вытаскивать содержимое БД? | |
|
|
|
|
|
|
|
для: Zepur
(25.05.2006 в 19:27)
| | Во 2 файл помойму, но куда, точно сказать не могу. | |
|
|
|
|
автор: Zepur (26.05.2006 в 21:42) |
|
|
для: itica
(26.05.2006 в 19:10)
| | Ну сколько можно игнорировать тему?! | |
|
|
|
|
|
|
|
для: Zepur
(26.05.2006 в 21:42)
| | Надо задавать вопрос там, где это было опубликовано. Автор явно лучше разбирается в коде. | |
|
|
|
|
|
|
|
для: Artem S.
(26.05.2006 в 22:39)
| | а разве эта штука не есть предок (или последователь) XAJAX'а, SAJAX'а, SMARTY итд.? | |
|
|
|
|
|
|
|
для: 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)
| | Спасибо! | |
|
|
|
|
|
|
|
для: 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 в 17:43)
| | Может где есть готовый пример? Это вообще возможно? | |
|
|
|
|
|
|
|
для: 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,
}
?>
|
Кривовато конечно, но другого метода я ещё не придумал... | |
|
|
|
|
|
|
|
для: Axxil
(30.05.2006 в 09:24)
| | Огромное спасибо!!!
Только я в JS не силён :(
Может подскажите как лучше разбить строку при получении? | |
|
|
|
|
|
|
|
для: itica
(30.05.2006 в 10:16)
| | Может есть уже где нибудь готовый чат на этой системе? | |
|
|
|
|
|
|
|
для: itica
(30.05.2006 в 18:31)
| | --- | |
|
|
|