Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Как передать данные из формы в обрабочик только после проверки
Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2010 Откуда: Россия
Помог: 0 раз(а)
Подскажите пожалуйста, как передать данные в обработчик, только после того, как пользователь заполнил все поля. Если я напишу в action формы имя обработчика, то как возратится обратно в форму и дать возможность пользователю исправить данные? Код внизу:
----- Умение ценить опыт старших прямо пропорционально количеству изобретенных велосипедов.
grefon
Отправлено: 16 Февраля, 2011 - 00:32:03
Частый посетитель
Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010
Помог: 32 раз(а)
Вариантов масса!
1) Можно сделать проверку формы на javascript на стороне клиента. Например поставить свойство disabled на кнопку "отправить", и написать функцию, которая при заполнении всех необходимых полей формы будет разблокировать кнопку "отправить".
2) Если все оставлять на пхп, то не стоит разбивать форму и скрипт обработчик на отдельные файлы. Когда все будет вместе - намного удобней.
3) Можно занести параметры в сессию. То есть Вы отправляете данные к примеру из поля name, проверяете их в скрипте, если они Вас устраивают, то заносите в глобальный массив session переменную: $_SESSION['form_name'] = $_POST['name'], а дальше делаете редирект на следующий скрипт где проверяете значение переменной $_SESSION['form_name'].
Я бы на Вашем месте выбрал 1 или 2 вариант.
----- ____________________________________________________________________
Ну как то так, наверное. http://grefon[dot]com
stranger140569
Отправлено: 16 Февраля, 2011 - 01:11:07
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2010 Откуда: Россия
Помог: 0 раз(а)
Спосибо grefon за ответ, но у меня возникло два вопроса:
1. Где писать session_start() в самом начале скрипта, или в блоке if(count($info) == 0).
2. Как сделать редедерект на обработчик. Редирект на скрипта на самого себя я знаю:
header('location: http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); а вот на скрипт я еще никогда не делал. Заранее большое спасибо.
----- Умение ценить опыт старших прямо пропорционально количеству изобретенных велосипедов.
grefon
Отправлено: 16 Февраля, 2011 - 01:38:54
Частый посетитель
Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010
Помог: 32 раз(а)
Первое: session_start() нужно писать в самом верху.
Второе: я наверное Вас плохо понял. Я думал у Вас 3 файла (1 - сама форма, 2 - скрипт проверки формы, 3 - скрипт в который нужно передать данные из файла 2). Если я неправильно понял, то тогда можно подробнее, в чем именно у Вас трудности?
----- ____________________________________________________________________
Ну как то так, наверное. http://grefon[dot]com
stranger140569
Отправлено: 16 Февраля, 2011 - 01:51:26
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2010 Откуда: Россия
Помог: 0 раз(а)
grefon пишет:
Я думал у Вас 3 файла (1 - сама форма, 2 - скрипт проверки формы, 3 - скрипт в который нужно передать данные из файла 2).
Дело в том, что скрипт проверки формы (все ли поля заполнены) я совместил вместе с формой. Так будет удобней я думаю. Путаница у меня возникла из-за того, что неправильно оформил код в первом посте. А дальше (если все поля заполнены), я хочу передать их в обработчик. Как я должен написать? Так?
----- Умение ценить опыт старших прямо пропорционально количеству изобретенных велосипедов.
grefon
Отправлено: 16 Февраля, 2011 - 02:59:21
Частый посетитель
Покинул форум
Сообщений всего: 823
Дата рег-ции: Нояб. 2010
Помог: 32 раз(а)
Все равно не понял куда Вам нужно отправить данные, уж извините за тупость
Я бы сделал все так, а там сами выберите, что именно Вам подходит и если подходит:
----- Умение ценить опыт старших прямо пропорционально количеству изобретенных велосипедов.
JustUserR
Отправлено: 16 Февраля, 2011 - 13:50:30
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
stranger140569 пишет:
Я хочу передать их в обработчик. Как я должен написать?
В случае осуществления использования множества различных PHP-приложений применяемых для выполнения последовательных операций по обеспечению получения и отправки информационных полей для пользователя - реализация обмена данными и передачи основного потока управления между PHP-приложениями основывается на внутреннем HTTP-перенапрввлении и механизме сохранения информационных полей в программной сессии
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
stranger140569
Отправлено: 16 Февраля, 2011 - 20:41:32
Новичок
Покинул форум
Сообщений всего: 9
Дата рег-ции: Дек. 2010 Откуда: Россия
Помог: 0 раз(а)
JustUserR огрмоное спасибо за то что помагаете мне!
P. S. Случайно наткнулся на твой тред по Perl. У меня есть мысли по поводу изучения Perl, но уместно ли их писать в твоем треде? Если да, напиши в личку или в этой теме.
----- Умение ценить опыт старших прямо пропорционально количеству изобретенных велосипедов.
JustUserR
Отправлено: 18 Февраля, 2011 - 11:33:52
Активный участник
Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009
Помог: 17 раз(а)
stranger140569 пишет:
JustUserR огрмоное спасибо за то что помагаете мне!
P. S. Случайно наткнулся на твой тред по Perl. У меня есть мысли по поводу изучения Perl, но уместно ли их писать в твоем треде? Если да, напиши в личку или в этой теме.
Пожалуйста! Осуществление использования языка Perl для разработки web-приложений в действительности включает множество аспектов обеспечивающих его преимущество перед создания аналогичных приложений на языке PHP - среди которых в частности осуществляться возможность мануального контроля передачи информационных полей в уровне CGI-интерфейса
Вы можете задать любые интересующие вопросы относящиеся непосредственно к языку Perl и системе исполнения CGI-приложений в соответствующей разделе форума
----- Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.