[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ajax + сессии (сессии пропали((( )
MailRes
Всем привет!

Есть у меня форма, которая POSTом передает данные и записывает их в сессии - работает исправно. (обрабатывается форма файлом form.php и при отправке данных выводит на страницу текст "форма отправлена" и значения из сессий)
Решил сделать, чтобы форма обрабатывалась без перезагрузки страницы после нажатия на клавишу и данные также бы записывались в сессии.

Но вот в чем беда - форма отправляется, alert'ом (на JS) выводится сообщение "форма отправлена", а значения сессий не выводит (((

Не понимаю в какую сторону копать((( Направьте пож. :)


jQuery(".myinput").keyup(function(){
var pr_val=this.value;
jQuery.post( "/form.php", { dataname: pr_val}, function(data) {
alert("Data Loaded: " + data);
});
});


<form id="my" method="post" action="form.php">
<input
class="myinput" type="text" name="dataname"/>
<input
type="submit" value="ok"/>
</form>



Т.е. когда нажимаю на кнопку "ок" всё нормально обрабатывается, а когда просто печатаю в input, то сессия "пропадают" (((
Michael
Очень странно выглядит посылать аякс запросы на keyup клавиши в поле ввода.

Я не вижу у тебя в коде сообщения "форма отправлена"

php кода ответа аяксу не вижу.

Вообще что точно ты хочешь сделать, инпута с class="myinput" в форме я тоже не вижу.

_____________
There never was a struggle in the soul of a good man that was not hard
MailRes
Цитата
Очень странно выглядит посылать аякс запросы на keyup клавиши в поле ввода.

Ну мне надо чтоб сразу после каждого нажатия запрос отправлялся)))

Цитата
Я не вижу у тебя в коде сообщения "форма отправлена"

он в отдельном файле form.php
вот код))

if ($_POST['dataname'])
{
$_SESSION['dataname']=mysql_real_escape_string(trim($_POST['dataname']));
echo "Форма отправлена ".$_SESSION['dataname'];
}


Цитата
php кода ответа аяксу не вижу.

А вот тут я не понял(((
function(data) { alert("Data Loaded: " + data);} - это разве не ответ?) Или я что-то не понимаю?


Цитата
Вообще что точно ты хочешь сделать, инпута с class="myinput" в форме я тоже не вижу.

Код формы сюда писал второпях, и пропустил его, счс подредактировал)))
MailRes
Дописал:

echo "Форма отправлена ".$_SESSION['dataname'];
var_dump($_SESSION);


Результат:
1) По нажатию на "ОК" - выводится сообщение "Форма отправлена" + значение сессии ['dataname'] + массив сессий))
2) При попытке печатать в Инпуте - выводится сообщение "Форма отправлена NULL";
Куда сессии пропали?((
MailRes
Значение сессий начало выводиться. дописал "session_start();" в файл обработчик form.php
Не знал((( Думал, что только один раз достаточно в index.php (где форма лежит) написать "session_start();" и будет достаточно((
Michael
Не важно где форма лежит, а важно какие скрипты выполняются.
Если аякс обработка у тебя указана в form.php то только он и выполнится и соответственно в нем надо session_start

_____________
There never was a struggle in the soul of a good man that was not hard
MailRes
Немного покопавшись с аяксом так и понял. Т.к. выполняется только form.php, то необходимо всё прочее подключать include'ом, чтобы корректно работало. Когда разобрался с сессиями, то тут же отвалилась база MySQL, дописал в form.php заново подключение к ней и всё норм стало))

А по keyup всё-таки бредовато обновлять))) Нагрузка большая получается, сделал по событию blur
Быстрый ответ:

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