Вопрос такой. В Open slaed аякс есть, но, в отличии от Про версий, там нет такой штуки, когда в то время, когда юзер нажал кнопку и до появления информации на экране, выводится loading.gif, извещающий о том, что происходит загрузка данных.
В Опене же, при нажатии на элемент, ничего не происходит до тех пор, пока собственно данные не прогрузятся. Минус этого в том, что если у пользователя медленный интернет или если сервер перегружен, данные могут загружаться довольно долго, и, не увидев результатов своего клика, пользователь просто уйдет, не дождавшись загрузки.
Надеюсь ясно что я имею ввиду)))
Как реализовать показ гифки в тот момент, пока данные грузятся?
Ajax в Open Slaed. Шкала загрузки.
- Группа: Посетители
- Пункты: 729
- Регистрация: 07.10.2006
- Пол: Мужчина
- Из: Россия/Москва
3.91
для начало эта функция должна выглядеть примерно так
присобачить очень просто
echo "<div id=\"repmyfunc\">".myfunc()."</div>";
у меня по нажатию на ссылку на событие onclick повешан ajax(), соответственно делается запрос в бд и в нужном диве появляется результат запроса. Нужно чтобы пока этот запрос совершается, вывелась надпись типа Подождите, загрузка...
ну вот как здесь, на сайте слаеда, если нажать
в блоке Пользователи, появился процесс загрузки и содержимое обновится... только тут используется какая то замудреная функция LoadGet(), у меня то вообще все проще, через ajax.php...
Событие onclick выглядит так:
- Группа: Посетители
- Пункты: 729
- Регистрация: 07.10.2006
- Пол: Мужчина
- Из: Россия/Москва
3.91
$id = ИД;
$text = "если надо текст";
OnClick=\"LoadGet('', 'myfunc', '2', 'myfunc_save', '$id', '', '', '', '$text'); return false;\"
что делает LoadGet она при нажатие посылает в функцию myfunc_save переменные $id, $text через GET
function myfunc_save(){
$id = $_GET['id'];
$text = $_GET['text'];
запрос
return myfunc()
}
в ajax.php добавь
} elseif($go == 2) {
$ThemeSel = get_theme();
if (file_exists("templates/$ThemeSel/index.php")) {
include("templates/$ThemeSel/index.php");
} else {
include("function/template.php");
}
include("function/no-cache.php");
include("function/function.php"); # файл где находятся функции myfunc() и myfunc_save()..
switch($op) {
case "myfunc":
myfunc();
break;
case "myfunc_save":
myfunc_save();
break;
}
}
я не имел дел с Open slaed но должно быть примерно так
описал как в PRO версии данное делается
спасибо.. попробую подразобраться, но очень уж не хотелось бы избавляться от простенькой в обращении ajax()...
а зачем в
OnClick=\"LoadGet('', 'myfunc', '2', 'myfunc_save', '$id', '', '', '', '$text'); return false;\"
написано 'myfunc', если он посылает на myfunc_save ?
- Группа: Посетители
- Пункты: 729
- Регистрация: 07.10.2006
- Пол: Мужчина
- Из: Россия/Москва
3.91
function myfunc(){
$arg = func_get_args();
$obj = analyze($arg[0]);
$content = "<a href=\"#\" OnClick=\"LoadGet('', 'myfunc', '2', 'myfunc_save', '".$id."', '', '', '', '".$text."'); return false;\">Ссылка</a>";
if ($obj) { return $content; } else { echo $content; }
}
function myfunc_save(){
$text = $_GET['text'];
$id = $_GET['id'];
**запрос**
return myfunc(0);
}
echo "<div id=\"repmyfunc\">".myfunc(1)."</div>";