Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема в логике  (Прочитано 7470 раз)
0 Пользователей и 1 Гость смотрят эту тему.
So1
Гость
« : 08-01-2008 04:26 » 

Как приятно описывать проблему на русском Отлично
Я использую для своего сайта xajax (ajax franework for php + ajax).
Для наглядности, конечно, могу выложить на хостинг но пока попытаюсь описать проблему русским языком. русским + php + js Ага

Код:
require ("xajax/xajax_core/xajax.inc.php");
$xajax = new xajax();
//$xajax->setCharEncoding('windows-1251');
//$xajax->setFlag("decodeUTF8Input",true);
//define ('XAJAX_DEFAULT_CHAR_ENCODING', 'windows-1251');

$xajax->registerFunction("changeContent");

require_once "db.php";

function changeContent($t)
{
GLOBAL $con;
$q = "SELECT `$t` FROM `texts` WHERE 1";
$res_Q = mysql_query($q, $con) or die (mysql_error());
$text = mysql_result($res_Q, 0, "$t") or die (mysql_error());

$xjxResponse = new xajaxResponse();
$xjxResponse->assign('buff', 'value', $t." + ".$text);

return $xjxResponse;
}

//changeContent();

$xajax->processRequest();

echo '<?xml version="1.0" encoding="utf-8"?>';
не буду вдаваться в подробности использования библиотеки xajax, тем более, я уверен, что кто-то использует (библиотека-то классная Ага )
в общем, changeContent цепляет из базы данные и пихает их в буфер
Код:
<form name='data'>
<input type='hidden' name='send' value='about' />
<input id='buff' type='hidden' name='buffer' value='' />
</form>
в send'е по умолчанию value='about' (стартовая страница "О нас")
Меню
Код:
<li onClick = "changeText('about');">О нас</li>
<li onClick = "changeText('contacts');">Контакты</li>
<li onClick = "changeText('portfolio');">Портфолио</li>
changeText
Код:
function changeText(t)
{
if (t != document.data.send.value)
{
defineColors();
xajax_changeContent(t);
new_data = document.data.buffer.value;
setTimeout("setInner('" + new_data + "')", 999);
setTimeout("fade4text (contentTextColor['r'], contentTextColor['g'], contentTextColor['b'], contentBgColor['r'], contentBgColor['g'], contentBgColor['b'], 1500, 35, document.getElementById('content'))", 1000);
fade4text (contentBgColor['r'], contentBgColor['g'], contentBgColor['b'], contentTextColor['r'], contentTextColor['g'], contentTextColor['b'], 1000, 35, document.getElementById('content'));
document.data.send.value = t;
}
}
setInner просто меняет контент в контент-блоке. Меняет, естественно, на те данные, которые были присланы серверным скриптом changeContent. Отложентный вызов функций нужен вот для чего, - на сайте контент меняется следующим образом: текст плавно приобретает цвет фона за одну секунду, далее через 999 мс текст контента меняется на то, что мы получили с сервера и через секунду за полторы секунды плавно из фона появляется "новый" контент. Логика не очень сложная. Но проблема в том что когда я кликаю, к примеру, "Контакты", текст контент-блока "уплывает" в фон, document.data.buffer.value меняется правильно, но "новый" контент не выплывает. Если заново нажать, к примеру, "О нас", через секунду выплывет текст, который был в буффере и теперь в буффере будет уже текст раздела "О нас". Не могу понять в чем "гвоздь" =( Вроде все правильно =(

Если есть желание помочь, - выложу код целиком. Могу выложить сайт на хостинг.
Записан
So1
Гость
« Ответ #1 : 09-01-2008 09:17 » 

эх. Видимо, прийдется к буржуям на форум лезть Отлично
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 09-01-2008 09:26 » 

So1, тема интересная, но со временем пока туго. Если не затруднит, кинь ссылочку на домашнюю xajax-а - хочу посмотреть.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
So1
Гость
« Ответ #3 : 09-01-2008 09:37 » new

http://xajaxproject.org/
Насчет времени, к стати, так всегда )). Но вообще, я пробовал штук 5 фреймворков... Остановился на xajax'е. Я, в принципе, и сам могу написать сайт на AJAX. Использование библиотеки просто экономия времени. так что, если пишешь на ajax-е, - советую имеено этот фреймворк. Легкий и достаточно мощный. Там, правда, у них в исходниках косяк есть один прямо в core. Я с первого раза из-за этого косяка не смог его запустить.
« Последнее редактирование: 09-01-2008 09:42 от So1 » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines