Ru-Board.club
← Вернуться в раздел «Web-программирование»

» PHP: библиотека xAJAX

Автор: Cheery
Дата сообщения: 20.09.2007 00:46
SRangeR

Цитата:
можно ли как нить с помошью Хаякса изменить высоту произвольного Div"а находящегося на странице?

а при чем тут вообще xajax? можно и без ajax
Автор: SRangeR
Дата сообщения: 20.09.2007 18:46
Что такого сделали в бете 4, что я просто заменил все файлы беты 2 и тут ошибка:

Notice: Only variables should be assigned by reference in Z:\home\0.ru\7\include\xajax\xajax_core\xajaxPluginManager.inc.php on line 268
Output has already been sent to the browser at Z:\home\0.ru\7\template\ads-1\header.html:13. Please make sure the command $xajax->processRequest() is placed
before this.

что-то я не понимаю тчо тут надо )


Добавлено:
пробовал поставить тестовый сайт что есть в примерах та же ошибка

Notice: Only variables should be assigned by reference in Z:\home\0.ru\8\xajax_core\xajaxPluginManager.inc.php on line 268

Notice: Only variables should be assigned by reference in Z:\home\0.ru\8\xajax_core\xajaxPluginManager.inc.php on line 268

Notice: Only variables should be assigned by reference in Z:\home\0.ru\8\xajax_core\xajaxPluginManager.inc.php on line 268
Output has already been sent to the browser at Z:\home\0.ru\8\xajax_core\xajaxPluginManager.inc.php:268. Please make sure the command $xajax->processRequest() is placed before this.

Добавлено:
имеется в виду xajax_0.5_beta_4b_Standard
Автор: SRangeR
Дата сообщения: 23.09.2007 21:55
Все дело в Денвере оказалось
Автор: SRangeR
Дата сообщения: 25.09.2007 10:02
0,5 Бета 4 test/suite
В этом примере тесты подгружаются в iframe. А можно ли сделать точно такое же но без iframe, как нить.

Если просто инклудить файл то образуются 2 $xajax->processRequest(); что вызывет ошибку.
Автор: Damned_WarGot
Дата сообщения: 03.10.2007 01:04
Товарищи спасайте. Вешаюсь уже -(
Кто-нибудь может дать рабочий пример в котором через xajax идёт вывод визуального редактора tiny_mce ?
Автор: Cheery
Дата сообщения: 03.10.2007 01:08
Damned_WarGot

Цитата:
Кто-нибудь может дать рабочий пример в котором через xajax идёт вывод визуального редактора tiny_mce ?

зачем его "выводить"? надо подключить js код редактора. затем через ajax получить содержимое, которое этот редактор будет редактировать и вставить содержимое в textarea.
так, по крайней мере, с fckeditor
Автор: Damned_WarGot
Дата сообщения: 03.10.2007 01:12
Cheery если не сложно можешь выложить код как ты это делал с fckeditor ом ?
Автор: Cheery
Дата сообщения: 03.10.2007 01:18
Damned_WarGot

Цитата:
Cheery если не сложно можешь выложить код как ты это делал с fckeditor ом ?

нет, там мои наработки.. еще раз спрашиваю - в чем проблема?
http://tinymce.moxiecode.com/example_full.php

Цитата:
<script language="javascript" type="text/javascript" src="tinymce/jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
    tinyMCE.init({
        mode : "textareas",
        theme : "simple"
    });
</script>

все.. далее создаем textarea в которое и пихаем полученный ajaxом код редактируемой страницы (преобразовав в html entitites, ессно)
Автор: Damned_WarGot
Дата сообщения: 03.10.2007 01:38
Маны курил. Когда просто пхпшка всё отлично пашет, но когда вставляю в функцию вывода через xajax такое ощущение что либы js не обращают на меня внимание.
Итак, для примера, имею стандартный php файлы, в начале файла делаю всё что необходимо для xajax а, потом после

Цитата:
<title> подгружаю js ки tiny.
<script language="javascript" type="text/javascript" src="/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
theme : "advanced",
...
return false;
}
</script>

( код взят с примера, и просто пашет отлично)
не забываю про это

Цитата:

<body>
<?php echo $sHeader;?>

В функции которая у меня за вывод отвечает на вывод отдаю следующий код

Цитата:

<form method="post" action="sample005.php">
<textarea id="elm1" name="elm1" rows="15" cols="80"><?php echo $sContent;?></textarea>
<br />
<input type="submit" name="save" value="Submit" />
<input type="reset" name="reset" value="Reset" />
</form>

В итоге имею на выводе через xajax обычное окно без менюшек которые мне по идеи должен был дать tiny.
Подозреваю что JS для xajax я не правильно подгружаю, так ?
Автор: Cheery
Дата сообщения: 03.10.2007 02:08
Damned_WarGot

Цитата:
В функции которая у меня за вывод отвечает на вывод отдаю следующий код

отвечает за вывод где? textarea должна существовать на момент запуска кода tinymce
Автор: lammerrr
Дата сообщения: 08.10.2007 12:28
Привет. Народ. Возник вопрос - возможно немного не в тему.
Как сделать обратную совместимость с уже встречающимися javascript ами в коде, возвращаемом ajax из backenda в frontend, есть ли что-то универсальное?

(Допустим имею сайт построенный на цмс, кучу внутренних скриптов (часть дописана, доделана или взята слева - и в них уже присутствует "внутренний" яваскрипт который по подгрузке аджакс контента нужно выполнить, и не всегда его можно "достать" и выкинуть в head секцию руками там где нужно или подключить файлы со скриптами).

Никто не сталкивался с такой либой которая позволила бы хоть частично решить данную проблему. Никто не хочет присоединиться в написании чего либо подобного? Поделиться возникшими идеями?

Вопрос не привязан конкретно к библиотеке xajax.

т. е. если подробнее вопрос начал подниматься здесь:

далее привожу комментарии @ Alex_b

http://joomlaforum.ru/index.php/topic,16631.120.html

Для запуска скриптов в полученном тексте, я поступал вот таким образом:
____________________________
.......... = function(str){

    

var script, scripts = '', regexp = /<script[^>]*>([sS]*?)</script>/gi;

    

while ((script = regexp.exec(str))) scripts += script[1] + '\n';

    

if (scripts) (window.execScript) ? window.execScript(scripts) : window.setTimeout(scripts, 0);
}
____________________________
Т.е. весь полученный текст прогоняется через регулярное выражение.
Выхватывается то что между <script> и </script>, а потом запускается.
(Вот этот код я подглядел у moo tools).
В принципе это не слишком хорошо (о вреде eval достаточно кругом понаписано).


Ваше решение, кажется мне, лучше.
(с помощью DHTML строить script)
Притом, отлавливать JS скрипты с помощью php и передавать в отдельной переменной это тоже лучше, чем отсеивать их на клиенте.

Только компоненты не обязательно выводят JS скрипты в BODY,
а правильные компоненты выводят скрипты в HEAD.

Вот эти скрипты тоже нужно отлавливать.


Еще есть скрипты которые подключаются к странице
<script type="text/javascript" src="sript.js"></script>
Их тоже нужно вылавливать и подгружать.

Допустим с этим разобрались.


Все JS программисты, старающиеся написать хороший код, помимо того, что выводят скрипты в HEAD очень часто используют событие window.onload.

А, как известно, это событие наступает единожды – когда станица загружена полностью.
Т.е. значит среди полученного JS кода нужно будет отыскать это событие, вытащить обработчик этого события и опять eval.
(Есть еще событие body.onload – это тоже нужно учесть)


Допустим и с этим разобрались.

Но каждый уважающий себя JS программист не станет просто вешать обработчик на window.onload, он будет использовать что вроде
____________________________
finction handler(){

    

//code here
}
window.addEventListener("load", handler, false);
____________________________

Допустим и с этим покончено. Мы научили наш скрипт отыскивать теперь и window.addEventListener.
(кстати в замен window можно использовать self : self.addEventListener, так что и это придется учесть)

Однако если программист хороший он знает, что addEventListener работает не во всех браузерах, для некоторых нужно использовать attachEvent.

И у него в коде появляется вот такое:
____________________________
var attachevent = function(element, event, handler){

    

try {element.addEventListener(event, handler, false);}

    

catch (e){element.attachEvent("on"+event, handler);}
};

attachevent(self, "load", function(){

    

//code here
});
____________________________
А ну догадайтесь, где тут window.onload? А потом напишите реглярку, которая сможет отыскать это событие.


Даже если вам это удалось – вы зря потратили время. Другой программист будет использовать другую функцию.

И так с каждым событием – нажатие на кнопке, потеря фокуса и т.п. я уж не говорю про эксклюзивные события которые нам предлагают библиотеки, например domready.


Если и это для вас не проблема, то вспомните на чем все держится.
На innerHTML !!!
innerHTML не в ходит ни в один стандарт, т.е. если вы пишите супер грамотное приложение и придерживаетесь стандартов, скажем w3c, вы не станете использовать innerHTML.
Браузеры очень по разному относятся к innerHTML, вот почему у вас и не хочет «отображаться в DOM инспекторе» все что вы таким путем вставили.



И что в итоге у вас получилось – работающая таким образом система (если она будет работать) будет профессиональной?

Если нам нужно хорошее приложение Ajax – его нужно и строить как хорошее приложение. Без eval, без всего этого сумасшествия.

Идея имела смысл до определенного момента, когда мы подгружаем обычный текст, но может немного JS-красивостей.
Автор: 6epcepk
Дата сообщения: 08.10.2007 20:01

Цитата:
Как сделать обратную совместимость с уже встречающимися javascript ами в коде, возвращаемом ajax из backenda в frontend, есть ли что-то универсальное?

Вынести код в ООП библиотеки и потом в xajax-function: $xajax->srcipt?
Автор: SRangeR
Дата сообщения: 09.10.2007 22:50
Хотелось бы узнать как заставить через аякс вывести стандартну форму сохранения файла.

при использовании Header("Location: $files_url");
возникает ошибка:
Tue, 09 Oct 2007 23:47:33 GMT-0700
ERROR: No response processor is available to process the response from the server.
Content-Type: image/jpeg
Tue, 09 Oct 2007 23:47:33 GMT-0700
RECEIVED [status: 200, size: 20577 bytes, time: 93ms]:
и непонятными символами сам видимо файл...
Автор: Cheery
Дата сообщения: 09.10.2007 22:52
SRangeR

Цитата:
Хотелось бы узнать как заставить через аякс вывести стандартну форму сохранения файла.

никак.. создаем iframe со ссылкой на файл и все.
Автор: SRangeR
Дата сообщения: 09.10.2007 23:16
кто нить делал что-то наподобии bb-кодов на Xajax?
Чтобы выделить текст, щеклнуть на кнопку и вставлялся код
Автор: Cheery
Дата сообщения: 09.10.2007 23:23
SRangeR

Цитата:
кто нить делал что-то наподобии bb-кодов на Xajax?
Чтобы выделить текст, щеклнуть на кнопку и вставлялся код

при чем тут ajax? это делается на js и все..
Автор: SRangeR
Дата сообщения: 10.10.2007 07:53
это делается на js и все..

Я хочу на xajax сделать. Вот потому и спрашиваю.
Автор: SRangeR
Дата сообщения: 10.10.2007 15:59
подлючение сторонних js делается как? - $objResponse->includeScriptOnce("bb.js");
или я ошибаюсь...
Автор: Cheery
Дата сообщения: 10.10.2007 16:44
SRangeR

Цитата:
Я хочу на xajax сделать.

ок.. задам вопрос иначе - каким образом ты хочешь при этом использовать xajax?
чтобы он выполнял какую функцию?
только не повторяй то, что написал выше. будет говорить лишь о том, что ты не понимаешь как и что работает.
Автор: SRangeR
Дата сообщения: 10.10.2007 20:08
В общем решил вставить js
использую фукнцию $objResponse->includeScript("../include/bb.js");

хотел проверить как работает
$objResponse->script(' try { if (bb.code.loaded) xajax.$("report").innerHTML += "<br />iframe.js loaded in iframe context"; } catch (e) { xajax.$("report").innerHTML += "<br />iframe.js *NOT* loaded in iframe context"; }');

говорит не загружен. да и функции не выполняются.

0,5 бета 4
Автор: SRangeR
Дата сообщения: 13.10.2007 12:13
сам быстрее разберешься, чем тут кто-то что ответит )))
Автор: Cheery
Дата сообщения: 13.10.2007 20:04
SRangeR

Цитата:
сам быстрее разберешься, чем тут кто-то что ответит )))

1) потому что тут не чат
2) потому что не каждый пользуется этим скриптом.
js не просто так подключить.
можно сделать через DOM, как на борде, к примеру, я сделал подзагрузку клавиатуры
но в части браузеров не будет работать.
можно получить содержимое js файла и сделать для него eval
насчет вставку через innerHTML - не уверен, что это сработает
Автор: NBlade
Дата сообщения: 29.10.2007 12:38
Может кто-нить подсказать: написал скрипт используя xajax, все работает, отлично. Делаю инклуд этого скрипта в cms - не работает Дебаг показал, что все нормально - все результаты возвращаются функцией верно (видимо проблема на стадии подстановки яваскриптом в код страницы результатов). Стер весь дизайн - все равно не работает. Cms netcat 2.4
Автор: SRangeR
Дата сообщения: 30.10.2007 15:13
а пример кода будет?

и проще написать свою cms на этом фрейм ворке) как например делаю йа )
Автор: myaGi
Дата сообщения: 31.10.2007 14:44
ребят, все перерыл.
есть 2 выпадающих селект списка. надо чтобы при выборе из 1го во втором показывались элементы привязанные к выбранному. видел много раз реализацию. как сделать хз.
Автор: 6epcepk
Дата сообщения: 31.10.2007 18:43
myaGi
По событию onChange первого списка вызываем ajax-функцию, которая генерирует response во второй список.
Попробуйте, а мы исправим ошибки, если что..
Автор: myaGi
Дата сообщения: 31.10.2007 20:10
да пробовал но додумать не могу.
<select onchange="phpfunc()">...
<option ...>...
как передать функции какое выбрано значение из списка.
Автор: 6epcepk
Дата сообщения: 31.10.2007 20:41

Код: <select onChange="xajax_myFunc(this.value);">
Автор: myaGi
Дата сообщения: 31.10.2007 21:56
спасибо 6epcepk. как мало надо то. первая ступенька преодолена
Автор: SRangeR
Дата сообщения: 01.11.2007 13:00
Есть предложение создать русско-язычный сайт по фреймворку xAJAX.
Для чего?
для перевода документации и продвижения фреймворка в массы
Что будет кроме документации?
CMS с использованием фреймворка!
Форум)))

Если есть желание пишите. Надежный хостинг обеспечу)

Страницы: 12345678910

Предыдущая тема: AJAX


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.