Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: библиотека xAJAX

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Открыть новую тему     Написать ответ в эту тему

6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Страница разработчика: http://xajax-project.org/
 
Последняя версия: xAJAX 0.6beta1
 
Докуменатция: Смотреть.
 
Решения:

 


 
Следует помнить!:
(мини-faq от 6epcepk'a)
  • Почему-то не обновляется/добавляется информация.
    Не забываем как должна выглядить функция:

    Код:
         
    function test() {
        $objResponse = new xajaxResponse();
        $objResponse->setCharEncoding('windows-1251');
        ...
        return $objResponse;
    }

     
  • Почему-то не обновляется/добавляется информация #2.
    Если присутствует символы кириллицы, то опять же вспоминаем как должна выглядить функция:

    Цитата:
         
    function test() {
        $objResponse = new xajaxResponse();
        $objResponse->setCharEncoding('windows-1251');
        ...
        return $objResponse;
    }

     
  • В базу данных добавляются кракозябры вместо кириллицы.
    А тут функция должна иметь другой вид:

    Цитата:
         
    function test() {
        $objResponse = new xajaxResponse();
        ...
        return $objResponse;
    }

     
  • Почемуто xajax.getFormValues('formID') не получает поля формы.
    Особенностью xajax является то что форма должна быть первого уровня или говоря другими словами не должна находиться в другой форме.
 





Лучше уточнить название, чтобы понятнее было о чем идет речь /Cheery/

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 23:12 18-04-2006 | Исправлено: Alukardd, 00:51 19-03-2011
Oleg_Tarusov



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Почему неправильно? Используй, я б также сделал. <br> для браузера перевод строки.

Всего записей: 175 | Зарегистр. 25-02-2006 | Отправлено: 21:46 20-04-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
6epcepk

Цитата:
Вопрос: как сделать, чтобы новая вставка производилась на новую строку?  

вставка идет в элемент, который уже есть на странице. Хочется через строчку, то нужно либо выводить во второй элемент, который через строчку..
либо сразу выводить информацию через строчку..
если же вторая часть (с новой строки) идет после каких то действий пользователя, то либо запоминать первую и потом выводить все вместе..
Либо в конце первой части вставлять элемент при выводе, в который потом впихнется вторая часть.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:11 20-04-2006
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А вот как сделать вывод TITLE (тот, что в HEAD)?
Например, контент формируется в xajax-функции и вставляется в слой, а как вставить нужный заголовок для страницы? Попробовал сделать <TITLE ID="my_title>, в Опере прокатывает, а вот в ИЕ - нет. (Кроме того в спецификации тэг не имеет атрибутов.)

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 21:52 23-04-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
6epcepk
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/objects/title.asp
document.title

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:08 23-04-2006
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Я что-то не понимаю: делаю такую xajax-функцию:

Код:
function my($id)
{
    $objResponse = new xajaxResponse();
    
    $objResponse->addAssign("content", "innerHTML", $data['text']);
    $objResponse->addScript("var s = \"Now we change the title\"; alert(s); document.title = s;");
 
}

 
В итоге работает только в ИЕ, а в Опере - нет. Что я неправильно делаю?
 
Странно ... но все заработало вдруг ... спасибо.

----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 23:49 23-04-2006 | Исправлено: 6epcepk, 00:31 24-04-2006
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
6epcepk

Цитата:
В итоге работает только в ИЕ, а в Опере - нет. Что я неправильно делаю?

в опере есть javascript console.. посмотри, там будут все сообщения об ошибках

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:51 23-04-2006
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Проблема с кириллицей?
Я ее решил следующим образом (может кому пригодится):
1. Если меняли кодировку по умолчанию в файле xajax.inc.php, то ее необхоимо выставить обратно:

Код:
define ('XAJAX_DEFAULT_CHAR_ENCODING', 'utf-8');

2. В AJAX-функции преобразуем кодировку:

Код:
$in_text = iconv("utf-8", "windows-1251", $string);

Вот собственно и все.


Но у медали есть и обратная сторона.
Теперь все данные, передаваемые клиенту должны быть перекодированы в UTF-8:

Код:
$out_text = iconv("windows-1251", "utf-8", $string);


----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 10:46 04-06-2006 | Исправлено: 6epcepk, 20:00 04-06-2006
edogs

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приносим извинения за легкий оффтоп, но кто-нибудь сравнивал это с дклабовским ajax-ом?

Всего записей: 1777 | Зарегистр. 25-07-2004 | Отправлено: 12:41 04-06-2006
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Еще одно решение для корректного отображения кириллицы:

Код:
include_once ("xajax.inc.php");
 
$xajax = new xajax();
$xajax->setCharEncoding('windows-1251');
$xajax->decodeUTF8InputOn();
 
function my_func() {
 
    $objResponse = new xajaxResponse();
    $objResponse->setCharEncoding('windows-1251');
 
    ...
 
    return $objResponse;
 
}
 
$xajax->registerFunction("my_func");
$xajax->processRequests();


----------
comming soon..

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 14:11 07-06-2006
myaGi

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
люди просвятите.  
юзаю xajax.  
есть index.php. внутри есть инклюд menu.php в котором подключаю xajax и выполняю банальную вставку текста. понимаю что это из-за вложенной инклюдности. если же делаю подключение xajax в самом index.php то все ок, но мне этот вариант не подходит, т.к. в menu.php  идут определения переменных и т.п. что посоветуете?

Всего записей: 78 | Зарегистр. 24-04-2006 | Отправлено: 19:29 30-01-2007
chulim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
myaGi
а вопрос то где? точнее проблема.

Всего записей: 65 | Зарегистр. 12-12-2002 | Отправлено: 22:05 30-01-2007
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
myaGi
Приведи код menu-скрипта и участок HTML, куда возвращает функция значение.

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 11:55 31-01-2007
orionxxi

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите разобраться новичку.
 
Есть код:

Код:
require("xajax.inc.php");
function insertclient($data){
    $nickname = $data['nickname'];
    $icq = $data['icq'];
    $email = $data['email'];
    
    $response = new xajaxResponse();
    $db_conn =mysql_pconnect('localhost','root','') or die (mysql_error());
    mysql_select_db('sauna') or die (mysql_error);
    $sql_text = "INSERT INTO users VALUES (' ','$nickname','$passwort','$icq','$email')";
    $result = mysql_query($sql_text) or die(mysql_error());
    return $response;    
}
    $xajax = new xajax();
         $xajax->registerFunction("insertclient");
    $xajax->processRequests();
    
?>
<html>
<head>
<? $xajax->printJavascript();?>
</head>
<body>
<script type="text/javascript">
        <!--
            xajax.loadingFunction =  
                function(){xajax.$('loadingMessage').style.display='block';};
            function hideLoadingMessage()
            {
                xajax.$('loadingMessage').style.display = 'none';
            }
            xajax.doneLoadingFunction = hideLoadingMessage;
        // --></script>
<form id="insert_form">
Benutzername: <input type="text" name="nickname" id="user_nickname"> </br>
ICQ: <input type="text" name="icq" id="user_icq"> </br>
Email: <input type="text" name="email" id="user_email"> </br>
<input type="submit" value="Insert" id="submitButton" onclick="xajax_insertclient(xajax.getFormValues('insert_form'));" /><p></p>
</form><br>
        <div id="loadingMessage" style="font-size: 22px; display: none;">
            <img src="./images/working.gif" />
        </div>
        <br>
</body>
</html>

Вставка в базу происходит, однако картинка, отображающая процесс записи не показывается. В чем моя ошибка?  
 
Заранее спасибо.

Всего записей: 27 | Зарегистр. 08-09-2006 | Отправлено: 01:07 13-02-2007
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
orionxxi

Цитата:
В чем моя ошибка?

браузер?  
если FF или Опера - смотри консоль ошибок..

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 04:44 13-02-2007
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
orionxxi
Поставить задержку в функцию добавления в базу.

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 10:13 13-02-2007
orionxxi

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
 
Ошибка действительно есть: xajax.js line 105, однако я в ява-скрипте не силен.
 
6epcepk
 
Добавление "слипа" ничего не дает.
 
 
 
 
Добавлено:
Проблема разрешилась следующим образом: (может быть кому-нибудь пригодится)
 

Код:
<html>
<head>
<title>Testlauf von XAjaX</title>
<? $xajax->printJavascript();?>
</head>
<body>
<script type="text/javascript">
function signup(){
        <!--
            xajax.$('submitButton').disabled=true;
            xajax.$('submitButton').value='Processing...';
            xajax_insertclient(xajax.getFormValues("insert_form"));
            return false;
            }
        // --></script>
<form id="insert_form" onsubmit="signup();" />  
Benutzername: <input type="text" name="nickname" id="user_nickname"> </br>
ICQ: <input type="text" name="icq" id="user_icq"> </br>  
Email: <input type="text" name="email" id="user_email"> </br>
<input type="submit" value="Insert" id="submitButton"/>
</form><br>

 
Это конечно же выход из ситуации, однако мне хочется понять, почему я не могу обратиться к .style.display ведь в документации описано именно так.
 
Кстати, шапку можно обновить... 0.5 на подходе.

Всего записей: 27 | Зарегистр. 08-09-2006 | Отправлено: 13:06 13-02-2007 | Исправлено: orionxxi, 18:36 13-02-2007
6epcepk



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
И как же решилась?
Тут решение отличное от использование стандартных функций.
 
У меня работает отлично:

Код:
function showLoadingMessage() {
    
    if (navigator.appName == "Microsoft Internet Explorer") {
        // document.body.scrollTop;
        document.getElementById("ajax-loading").style.top = document.body.scrollTop;
    } else{
        document.getElementById("ajax-loading").style.top = window.pageYOffset;
    }
    document.getElementById("ajax-loading").style.display = "block";
    
}
 
function hideLoadingMessage() {
    
     document.getElementById("ajax-loading").style.display = "none";
      
}  

Всего записей: 2603 | Зарегистр. 02-05-2003 | Отправлено: 01:27 14-02-2007
orionxxi

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
6epcepk
 
Я же написал код.
 

Цитата:
У меня работает отлично:

 
Я хочу решить прблему средствами класса, в противном случае проще тогда все делать без xajax. Повторю, что меня интересует: почему я могу изменять свойства кнопки, как это показано в примере с обработкой форм и почему не могу использовать при этом графическое отображение процесса, как это показано в примере создания загрузочного сообщения... (Все примеры находятся в документации класса.)  
 
Удачи.

Всего записей: 27 | Зарегистр. 08-09-2006 | Отправлено: 15:45 14-02-2007
RiNeo



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хочу научиться выводить таблицы посредством xAJAX... Кто сможет помочь?
Я пытался вывести ее посредством функции
Код:
$objResponse->addAssign("tablebox", "innerHTML", $sOut);
на это браузер выдает ошибку: "the XML response that was returned from the server is invalid. Received: (хтмл-код таблицы, которую я хочу вывести). You have whitespace in your response."
Может для этого нужна вообще другая функция?

Всего записей: 26 | Зарегистр. 14-03-2006 | Отправлено: 08:09 19-03-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP: библиотека xAJAX


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru