[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: PHP + AJAX
denis39
Внимательно изучил тему: http://phpforum.ru/index.php?showtopic=19283
и сделал регистрацию по аналогии. Всё получилось. Теперь хочу сделать так: если пользователь авторизован, то по нажатию кнопки выход, его перебрасывает на файл уничтожающий переменные $_SESSION, но страницу не перезагружает.

Пытаюсь сделать так, но у мну ничо не получается
<div id="result">
<form
onsubmit="return SendExit(form)">
<input
type="submit" class="vyhod" value="">
</form>
</div>



function SendExit(form) {

// создаем новое подключение
var AJAX = new AjaxRequest('modules/registration/exit.php');

// определяем функцию на выполнение запроса
AJAX.OnLoad(myOnLoad);

// определяем функцию на завершение запроса
AJAX.OnComplete(myOnComplete);

}

function myOnLoad() {
ge('result').innerHTML = '<center><img class="loading" src="img/loading.gif"></center>';
}

function myOnComplete(result) {
ge('result').innerHTML = result;
}


Нажимаю на кнопку выход, но ничего не происходит sad.gif


Второй вопрос таков: Гость заходит в новости, но не может добавлять комментарии. Решив добавить комментарий он авторизуется, но так как авторизация выполнена на AJAX вся страница не перезагружается, а только блок авторизации. Авторизованный пользователь видит: вы не можете добавлять комментарии, в то время как он авторизован на сайте. Как можно решить эту проблему.

З.Ы Зараннее спасибо за ответы smile.gif



Спустя 13 минут, 54 секунды (7.12.2009 - 23:29) Romms написал(а):
а отправлять данные не надо? Почитай внимательно про AJAX(посмотри примеры)

Спустя 6 минут, 47 секунд (7.12.2009 - 23:36) denis39 написал(а):
Отправлять ничего не надо. Мне нужно чтоб без перезагрузки всей страницы по нажатию кнопки выход подгружался файл, уничтожающий переменные $_SESSION и на момент обработки показывалось "Загрузка..."

Спустя 2 минуты, 13 секунд (7.12.2009 - 23:38) denis39 написал(а):
Цитата (Romms @ 7.12.2009 - 20:29)
а отправлять данные не надо? Почитай внимательно про AJAX(посмотри примеры)

Примеры посмотрел. Сделал вродь правильно (хз правильно или нет smile.gif ), но не работает. Уверен, что ошибка наверн из-за невнимательности. Наверн пропустил что-то

Спустя 4 минуты, 35 секунд (7.12.2009 - 23:43) Romms написал(а):
Цитата
Отправлять ничего не надо

как раз то надо!! отправлять надо, в переносном значению - "а нука удали сессию" biggrin.gif
В смысле надо сделать обращения к серверу! Иначе как он узнает что, уже надо удалить сессию?
передать "NULL";

Спустя 2 минуты, 59 секунд (7.12.2009 - 23:46) Romms написал(а):
краткий пример:
var url = "/poll.php";
AJAX.open("GET",url,true);
AJAX.send(null);

Спустя 7 минут, 47 секунд (7.12.2009 - 23:54) denis39 написал(а):
Вот так?

<script>
function SendExit(form) {
// создаем новое подключение
var url = 'modules/registration/exit.php';

// определяем функцию на выполнение запроса
AJAX.OnLoad(myOnLoad);

// определяем функцию на завершение запроса
AJAX.OnComplete(myOnComplete);


AJAX.open("GET",url,true);
AJAX.send(null);

}

function myOnLoad() {
ge('result').innerHTML = '<center><img class="loading" src="img/loading.gif"></center>';
}

function myOnComplete(result) {
ge('result').innerHTML = result;
}
</script>


Спустя 11 минут, 11 секунд (8.12.2009 - 00:05) Romms написал(а):
твой код - тебе виднее!

Както ты странно делаешь... я делаю так:
var xmlHttp = new XMLHttpRequest();

function updatePoll(){

var url = "/poll.php?r="+Math.random(); //читал что правильнее додавать чтото типа такого, правда зачем незнаю

xmlHttp.open("GET",url,true);
xmlHttp.send(null);
xmlHttp.onreadystatechange = redrawPoll;
}

function redrawPoll(){
if (xmlHttp.readyState==4){
var response = xmlHttp.responseText;
document.getElementById("poll").innerHTML=response;
}
}

Спустя 1 минута, 54 секунды (8.12.2009 - 00:07) denis39 написал(а):
Я опираюсь вот на эту тему http://phpforum.ru/index.php?showtopic=19283

Спустя 4 минуты, 38 секунд (8.12.2009 - 00:11) Romms написал(а):
Цитата
Я опираюсь вот на эту тему http://phpforum.ru/index.php?showtopic=19283

ты б сразу так... правда я непонимаю зачем?(зачем класс) тут и так ничего сложного...

Спустя 8 часов, 36 минут, 12 секунд (8.12.2009 - 08:48) denis39 написал(а):
Я попробовал по твоему коду. Всё норм получилось, ток интеретуют два момента: почему после выхода кидает на главную (у меня в коде рефреша нету) и как туда записать "загрузка..." ???

Спустя 34 секунды (8.12.2009 - 08:48) denis39 написал(а):
По второму вопросу можешь что подсказать?

Спустя 12 минут, 47 секунд (8.12.2009 - 09:01) Romms написал(а):
Цитата
почему после выхода кидает на главную

чтобы не кидало тебе надо "отменить" отсылку формы для этого встав в функцию(после xmlHttp.onreadystatechange = redrawPoll;)
 return false; 

Цитата
как туда записать "загрузка..."

а вот так: (пример)
...
xmlHttp.send(null);

// после того как отправил данные выводишь нужный текст в нужное место...
document.getElementById("poll").innerHTML="Загрузка...";

xmlHttp.onreadystatechange = redrawPoll;
...

Спустя 5 минут, 6 секунд (8.12.2009 - 09:06) denis39 написал(а):
Щас поправлю. Ещё такой вопрос возник: гость заходит в новости, но не может добавлять комментарии. Решив добавить комментарий он авторизуется, но так как авторизация выполнена на AJAX вся страница не перезагружается, а только блок авторизации. Авторизованный пользователь видит: вы не можете добавлять комментарии, в то время как он авторизован на сайте. Как можно решить эту проблему.

Спустя 4 минуты, 39 секунд (8.12.2009 - 09:11) Romms написал(а):
обновить блок новостей через AJAX smile.gif
либо перезагрузить страницу(с помощью AJAX)

Спустя 30 минут (8.12.2009 - 09:41) denis39 написал(а):
С кодом не поможешь? Или почитать отправь куданибудь
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.