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

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

Автор: SRangeR
Дата сообщения: 07.04.2007 23:51
поставил бету 2 в папку /includ/xajax/

вроде бы правильно подключил главный файл

include_once('../../../includ/xajax/xajax_core/xajax.inc.php');

запускаю старые скрипты пишет не найден файл xajax_core.js в папке xajax_js

function autoCompressJavascript($sJsFullFilename=NULL, $bAlways=false)
    {    
        $sJsFile = 'xajax_js/xajax_core.js';

        
        if ($sJsFullFilename) {
            $realJsFile = $sJsFullFilename;
        }
        else {
            $realPath = realpath(dirname(dirname(__FILE__)));
            $realJsFile = $realPath . '/'. $sJsFile;
        }

подскажите какой относительный путь прописать...

З.Ы. Кто нить пробовал загружать файлы через xajax, поделитесь опытом
(тот что есть пример на форум - не могу понять, т.к. инлишом пока не владею)
Автор: 6epcepk
Дата сообщения: 08.04.2007 00:09
Пишется include.

Читать до просветления: http://phpfaq.ru/paths


Цитата:
.Ы. Кто нить пробовал загружать файлы через xajax, поделитесь опытом

Реализовывал и очень удачно с индикатором загрузки. translate.ru поможет самым плохим школьникам
Автор: SRangeR
Дата сообщения: 08.04.2007 12:12
ну а так слабо сказать ???
Все твои копирайты в своем двиге пропишу )))
Автор: 6epcepk
Дата сообщения: 08.04.2007 12:18
Что сказать?
Как прописывать пути? Почитай, это полезно, точнее без этого никак.
Загрузка файлов? По ссылке _http://trydobe.com/?page_id=3

Тут форум общения программистов, поэтому такие примитивные вещи как прописывание путей думаю разжевывать никто не будет, если влом прочитать полстраницы текста самому ученику.
Автор: SRangeR
Дата сообщения: 08.04.2007 12:26
забыл сказать с путями то разобрался )))

Жаль но мой движок не предполагает использования перла. придется что нить самому придумать )
Автор: SRangeR
Дата сообщения: 08.04.2007 18:53

Код: function newCat($formData)
{
    if(!db_connect()) die("DB Error.");
        
    $objResponse = new xajaxResponse();
    
    $formData['cat_title'] = iconv('UTF-8','windows-1251',$formData['cat_title']);
    $formData['cat_description'] = iconv('UTF-8','windows-1251',$formData['cat_description']);
    $formData['cat_key'] = iconv('UTF-8','windows-1251',$formData['cat_key']);
    $formData['cat_title'] = ereg_replace("[^A-Za-z0-9 А-Яа-я]", "", $formData['cat_title']);
    $formData['cat_title_alt'] = ereg_replace("[^A-Za-z0-9_]", "", $formData['cat_title_alt']);
    $formData['cat_description'] = ereg_replace("[^A-Za-z0-9 А-Яа-я]", "", $formData['cat_description']);
    $formData['cat_key'] = ereg_replace("[^A-Za-z0-9 А-Яа-я]", "", $formData['cat_key']);
    $formData['cat_parent_id'] = ereg_replace("[^0-9]", "", $formData['cat_parent_id']);

    if(@mysql_query("insert into news_cat ( `news_cat_id` , `news_cat_title` , `news_cat_title_alt` , `news_cat_description` , `news_cat_key` , `news_cat_news_counter` , `news_cat_parent_id`) values ('', '".$formData['cat_title']."', '".$formData['cat_title_alt']."', '".$formData['cat_description']."', '".$formData['cat_key']."', '0' ,'".$formData['cat_parent_id']."')" limit 1))
    {
    list($mes0) = newcat();
    list($mes) = viewcat();
    }
    else $message="Произошла ошибка при записи новости в базу данных";
    
Автор: 6epcepk
Дата сообщения: 08.04.2007 19:26
Какое это имеет отношение к аяксу?

В догонку: знаете зачем нужен pramary key?
Автор: SRangeR
Дата сообщения: 11.04.2007 23:19
Хотел загрзить файл через аякс...


Код:
Загрузить файл <input type="file" name="files_upload" size="50">


if (copy($formData['files_url']["tmp_name"], "../../../../temp/".$formData['files_url']["files_upload"])) $report="Complete";//57 строчка
Автор: Cheery
Дата сообщения: 12.04.2007 02:23
SRangeR

Цитата:
что я тут не правильно делаю?

важным является сообщение

Цитата:
Warning: copy(h): failed to open stream: No such file or directory in Z:\home\4.ru\www\admin\moduls\files\ajax.php on line 57

все остальное - его следствия..
и так.. перевод нужен? коротко..

Цитата:
$formData['files_url']["tmp_name"]

пустое значение.. файлы через ajax не передаются таким образом.. там более сложная вещь.
файлы, обычно, передаются через iframe

Автор: lestatus
Дата сообщения: 12.04.2007 10:13

function upoad_file()
{

код копирования твоего файла!
переменные
Цитата:
formData['files_url']["tmp_name"]

здесь уже доступны.....


}

$xajax->registerFunction("'upload_file'");



$xajax->processRequests();
?>
<html>
<head>
..........

<?php $xajax->printJavascript(XAJA_DIR); ?>

<script language="Javascript">
function checkUploadForm() {



xajax.upload('upload_file',upload_file_form);

return true;

}
</script>
</head>
<body>
<form action = "<?=$SERVER['PHP_SELF'];?>" id="upload_file_form" method="post" onSubmit="return checkUploadForm();">

<input name="userfile" size="50" type="file" id="userfile">
<input type="submit" value = "Загрузить файл" >
</form>
</body>
</html>

Мог где то ошибится..... но по такому алгоритму сам писал - все получилось......
Ах да забыл учесть ХАЯКС должен быть 0.2.4
Автор: Cheery
Дата сообщения: 12.04.2007 19:27

Цитата:
Мог где то ошибится..... но по такому алгоритму сам писал - все получилось.....

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

но, скорее всего, сделано опять же через iframe
Автор: SRangeR
Дата сообщения: 13.04.2007 11:20
lestatus
а на 0,5 версии не пробовал ???

у меня не получилось...
Автор: flexstudio
Дата сообщения: 13.04.2007 15:37
Я юзаю DKLAB'овский класс.
Там реализуется в 2 счета все

PHP:

Цитата:

// Объекс AJAX
$ajax = &new JsHttpRequest("windows-1251");
// К файлу можно обратиться через $_REQUEST (она глобальная), либо прямо через $HTTP_FILES_VARS
if(move_uploaded_file($_REQUEST['flname'][tmp_name], 'КУДА ЗАЛИТЬ'))
$m_ajax['status'] = true; else $m_ajax['status'] = false;


JavaScript:

Цитата:
function upload() {
var req = new JsHttpRequest();
req.onreadystatechange = function() {
if(req.readyState == 4) {
//обрабатываем результат выданный скриптом, типа:
document.getElementById('info_div').innerHTML = req.responseJS.status ? 'File is upload' : 'File not upload';
}
}
req.open('POST', 'URL_TO_SCRIPT', false);
req.send(flname: DOM_FILE_ELEMENT);
}


НО, почитав про Xajax, мне там больше понравилась, что сделано это более в ООП, а в дклабоском js ручками, но не сложно.

Автор: lestatus
Дата сообщения: 13.04.2007 16:40

Цитата:

lestatus
а на 0,5 версии не пробовал ???

Неа!! меня пугает что это БЕТА верися.. дождусь когда будет релиз...и буду юзать!


А вообще у меня трабл с функцией аплоада, я не могу найти способа передать туда переменную....
едиснственное что прокатывает это через $_GET но меня не устраивает это......
Просто на странице несколько форм, и надо определить из какой формы закачивать файл...
Автор: 6epcepk
Дата сообщения: 13.04.2007 17:08
В бете не работает windows-1251 кодировка, а так все хорошо.

lestatus
Решений море на официальном форуме, целая большая тема.
Автор: SRangeR
Дата сообщения: 13.04.2007 19:22
Вот например есть решение
by BigBrownChunx
http://www.concepts.net.nz/xajax/xajax_js/xajax_file_uploads.js
(without progress bar)

а как пользоваться не расписано...
Автор: lestatus
Дата сообщения: 13.04.2007 20:10

Цитата:
Вот например есть решение
by BigBrownChunx
http://www.concepts.net.nz/xajax/xajax_js/xajax_file_uploads.js
(without progress bar)


Натолкнуло на мысль... чуток изменить яваскрипт! что бы передавать свою переменную..... ща буду копаться!
И посмотрю, может они там и так предусмотрели передачу переменных, а я о ней просто не знаю))))))


Цитата:
а как пользоваться не расписано...

не беда.....

Добавлено:

Цитата:
Вот например есть решение
by BigBrownChunx
http://www.concepts.net.nz/xajax/xajax_js/xajax_file_uploads.js
(without progress bar)


Натолкнуло на мысль... чуток изменить яваскрипт! что бы передавать свою переменную..... ща буду копаться!
И посмотрю, может они там и так предусмотрели передачу переменных, а я о ней просто не знаю))))))


Цитата:
а как пользоваться не расписано...

не беда.....

Добавлено:
Ура Нашел решение!!!

Порылся в ява скрипте на что меня надоумел SRangeR, спасибо
и там выяснилось что он формирует ифрейм, генерирует строку УРЛ , запихивает туда все переменные... а потом в ифрейм запихивает мой ПХП код... там его выполняет и опять какими то хитрыми манипуляциями через XML схему как я понял возвращает результат его выполнения!!!
Но что выполняется в ифрейме, может взять через ГЕТ переменную из строки.... ну я ее туда и добавил!... если интересно могу поподробнее объяснить.....

Автор: SRangeR
Дата сообщения: 13.04.2007 20:55
Конечно интересно )

напиши пример как это использовать на пхп, и лучше этот пример оформить в виде статьи (обязательно помещу на своем сайте . Если не трудно, конечно. Т.к. думаю это будет интересно не только мне.

Автор: VaaL2004
Дата сообщения: 19.04.2007 16:59
Народ, есть такое:
На страницу инлудится файл в котором хаяксом делается выборка строк из файла. Всё работает на ура, но проблема в том, что выборка обновляется каждые 5 секунд, а она не маленькая (примерно 100кб), каким образом можно оптимизировать работу? Тянуть 100кб каждые 5 секунд, сами понимаете, не дело!
Автор: djinnet
Дата сообщения: 19.04.2007 20:09
Может кто поможет реализовать плавно выплывающую таблицу? А то я могу сделать только чтобы она появлялась, а хочется плавно чтобы выплывала. Может кто даст полезную ссылку? Весь инет выискал, ничего пока что не нашел. До сих пор в поисках.. Помогите, кто знает
Автор: 6epcepk
Дата сообщения: 19.04.2007 22:24
djinnet
script.aculo.us
Автор: djinnet
Дата сообщения: 19.04.2007 22:48
Благодар

Добавлено:
Ещё вопрос, почему когда я добавляю эффект слайда, у меня таблицы не работают. Работает только простой текст, а коли вставляю туда таблицу, ничего не пашед? =( Я читал тут постами выше, так и не прозвучал ответ на подобный вопрос...
Автор: djinnet
Дата сообщения: 20.04.2007 21:45
Вобщем, опять возникла проблема. xajax 05beta 2. Привожу код.
function loadMessage($count = 10) {
$objResponse = new xajaxResponse();

$mysql=new mysql();
$mysql->connect();
$mysql->tmpl = "SELECT * FROM xajax_eur ORDER BY id DESC LIMIT 0, $count";
$mysql->args = array();
$mysql->query(__FILE__,__LINE__);
while($row=mysql_fetch_array($mysql->result)){
$name = $row['date_open'];
$date = $row['type'];
$message = $row['date_close'];
$co_eur = $row['cost_open'];
$cc_eur = $row['cost_close'];
$output = '<tr><td align="center" valign="center" bgcolor="ffffff" style="BORDER-RIGHT: rgb(0,0,0) 1px solid; BORDER-BOTTOM: rgb(0,0,0) 1px solid">$name</td>';
     $output .= '<td align="center" valign="center" bgcolor="ffffff" style="BORDER-RIGHT: rgb(0,0,0) 1px solid; BORDER-BOTTOM: rgb(0,0,0) 1px solid">$date</td>';
     $output .= '<td align="center" valign="center" bgcolor="ffffff" style="BORDER-RIGHT: rgb(0,0,0) 1px solid; BORDER-BOTTOM: rgb(0,0,0) 1px solid">$message</td>';
     $output .= '<td align="center" valign="center" bgcolor="ffffff" style="BORDER-RIGHT: rgb(0,0,0) 1px solid; BORDER-BOTTOM: rgb(0,0,0) 1px solid">$co_eur</td>';
$output .= '<td align="center" valign="center" bgcolor="ffffff" style="BORDER-RIGHT: rgb(0,0,0) 1px solid; BORDER-BOTTOM: rgb(0,0,0) 1px solid">$cc_eur</td>';
$output .= '<td align="center" valign="center" bgcolor="ffffff" style="BORDER-BOTTOM: rgb(0,0,0) 1px solid"><a href="">13 Пункта</a></td></tr>';
} return($output);
return $objResponse;
}

/*
* подгружаем сообщения при старте программы
*/
function onStartLoad() {
$output = loadMessage();
    
$objResponse = new xajaxResponse();
$objResponse->addAssign("content","innerHTML",$output);


return $objResponse;
}

Вот собственно функции... а вывожу я следущим образом:
<script type="text/javascript">
xajax_onStartLoad();
</script><div id="content"></div>
а он ничего не показывает. пустота... где я ошибаюсь?
Автор: Cheery
Дата сообщения: 20.04.2007 21:50
djinnet

Цитата:
а он ничего не показывает. пустота... где я ошибаюсь?

мда..

Цитата:
return($output);
return $objResponse;

зачем два return?
далее...

Цитата:
addAssign("content","innerHTML",$output);

проверяем чему равна.. если пустая, то ессно будет и пусто
Автор: djinnet
Дата сообщения: 20.04.2007 23:09

Цитата:
зачем два return?

Увидел, исправил. Ничего не изменилось...

Цитата:
проверяем чему равна.. если пустая, то ессно будет и пусто

а на счет этого я что-то не понял, $output то не пустой, он же из бд должен брать и показывать. в базе все есть, а на экране ничего...
Где ещё может быть ошибка?
Автор: Cheery
Дата сообщения: 20.04.2007 23:10
djinnet

Цитата:
$output то не пустой, он же из бд должен брать и показывать

ну так проверь - пустой или нет..
Автор: djinnet
Дата сообщения: 20.04.2007 23:58
ну я же говорю, что база не пустая. там есть данные... а все равно не выводит, если даже добавляю, он ничего не видно, а в базу все добавляется, все нормально работает...
Автор: Cheery
Дата сообщения: 21.04.2007 00:02
djinnet

Цитата:
ну я же говорю, что база не пустая. там есть данные... а все равно не выводит, если даже добавляю, он ничего не видно, а в базу все добавляется, все нормально работает...

вот упертый, блин..
еще раз.. проверь что в переменной.. потому что, судя по твоему уровню, не совсем понимаешь что делаешь

Автор: djinnet
Дата сообщения: 21.04.2007 00:17
В переменной вот что...
$output = '<div><TR><TD>$name</TD>';
$output .= '<TD class=\"sized1\">$date</TD>';
$output .= '<TD class=\"sized2\">$message</TD>';
$output .= '<TD class=\"sized3\">$co_eur</TD>';
$output .= '<TD class=\"sized3\">$cc_eur</TD>';
$output .= '<TD class=\"sized3\">$pribil</TD></TR></div>';
понимать то понимаю что делаю но не совсем получается...
на версии 0.2 работает... тока там он с какими то глюками выдает, не читает классы ксс. а в 0.5 бета2 там вообще ничего не выдает...
Автор: 6epcepk
Дата сообщения: 21.04.2007 10:32

Цитата:
function onStartLoad() {
// $output = loadMessage();


$objResponse = new xajaxResponse();
//$objResponse->addAssign("content","innerHTML",$output);

$objResponse->loadCommands(loadMessage());


return $objResponse;
}

Страницы: 12345678910

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


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