Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача значений в форму 
:(
    Опции темы
ovxxx
Дата 29.6.2005, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 21.3.2005

Репутация: нет
Всего: нет



Есть форма добавления анкеты для знакомств. Допустим не заполнили все обязательные поля.
Скрипт это видит и запускает опять ту же форму с предупреждением о незаполненных полях.
Но вот как сделать, чтобы те поля, которые пользователь все таки заполнил, во вновь загруженной форме оказались не пустыми, а сохранили предыдущие значения?
Я попробовал сделать так:
Код

if (!$name)
{
$name="";
}
echo("<div>Ваше имя:<input type=text value=".$name.">");

Но если полей много, то код становится нечитабельным не только для дизайнера но и для программиста. Да и к тому же форма начинает в браузере выводиться не вся а частями.
Можно ли сделать все это как то поизящнее? Чтобы скрипт был более понятным и надежным. smile
PM MAIL   Вверх
z-END
Дата 29.6.2005, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: 5
Всего: 102



проверяем параметры если все гуд то ok==true
Код

if (!$ok){ ?>
Ваше имя: <input type=text value="<?=$name?>"><br />
Ваша фамилия: <input type=text value="<?=$surname?>"><br />
...
<?php } 

тогда, если были не введены все данные, то введенные будут оставться.


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
skalex
Дата 29.6.2005, 10:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Не забываем, что если данные приходят методом POST, то их надо дергать из глобального массива $_POST. При настройке PHP register_globals off приведенные выше пример не заработает ...
Код
Ваше имя: <input type=text value="<?= $_POST['name'] ?>"><br />
Ваша фамилия: <input type=text value="<?= $_POST['surname'] ?>"><br />

Добавлено @ 10:32
ovxxx, имхо изящнее всего - написать класс для создания форм, который будет заниматься отрисовкой полей, клиентской и серверной валидацией и прочими вещами. Можно попробовать использовать готовые библиотеки (см. http://forum.vingrad.ru/index.php?showtopic=54923).
PM   Вверх
Bikutoru
Дата 29.6.2005, 12:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Еще можно шаблон формы создать, его парсить и вставлять нужные значения полям
Mace, если написать класс, то дизайнеру там точно делать будет нечего smile

Это сообщение отредактировал(а) Bikutoru - 29.6.2005, 12:16


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
skalex
Дата 29.6.2005, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Цитата
Mace, если написать класс, то дизайнеру там точно делать будет нечего

Как это нечего ? В моем понимании такой класс не должен отрисовать форму полностью (уже готовой к выводу), а должен лишь предоставлять по требованию HTML-код открытия/закрытия формы и ее полей . Ну или что то в этом роде ... А верстальщик (не дизайнер) пусть компонует и оформляет это на странице.
PM   Вверх
Bikutoru
Дата 29.6.2005, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Но в любом случае потребуются шаблоны, содержащие что-то вроде

Код

<input type=text value="{InputValue}">

что не намного проще, чем
Код

<input type=text value="<?=$surname?>"><br />


Хотя, конечно, дизайн при таком раскладе менять будет проще, если это потребуется...

Это сообщение отредактировал(а) Bikutoru - 29.6.2005, 13:19


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
skalex
Дата 29.6.2005, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Неее ... Ну что-нить типа этого:

Код
{$form->open()}
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
 <td>name</td>
 <td>{$form->item('name')}</td>
</tr>
<tr>
 <td>email</td>
 <td>{$form->item('email')}</td>
</tr>
</table>
{$form->close()}

PM   Вверх
Bikutoru
Дата 29.6.2005, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Но ведь для
Код

{$form->item}

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


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
skalex
Дата 29.6.2005, 14:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



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

Ну тут все зависит от того шаблонного движка, под который все это затачивать. Если делать не под шаблонный движок, а под обычный HTML, то в почему бы не передавать это методу в качестве параметра ?
Код

<?php echo $form->item('name', 'class="name_field"') ?>
<?php echo $form->item('name', 'style="border: 1px solid #CCC"') ?>


Это сообщение отредактировал(а) Mace - 29.6.2005, 14:46
PM   Вверх
Bikutoru
Дата 29.6.2005, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Цитата
почему бы не передавать это методу в качестве параметра ?


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


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
skalex
Дата 29.6.2005, 15:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Хороший человек
**


Профиль
Группа: Участник Клуба
Сообщений: 895
Регистрация: 2.4.2004

Репутация: 8
Всего: 23



Да там не скрипт в принципе, я просто написал как это может выглядеть в обычном HTML-шаблоне (без всяких движков). Но сама то форма создается в другом месте, там где ты описываешь логику.
А вызовы тех методов - это уже часть отображения. Потому как он возвращает готовый HTML-код поля с подстановкой всех необходимых аттрибутов.

В общем по разному тут можно судить. Я писал такой класс, и для меня он очень удобен.
PM   Вверх
Bikutoru
Дата 29.6.2005, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлекающийся
**


Профиль
Группа: Участник
Сообщений: 522
Регистрация: 24.5.2005
Где: Москва

Репутация: 8
Всего: 22



Цитата
В общем по разному тут можно судить. Я писал такой класс, и для меня он очень удобен.

Соглашусь, это и есть главный критерий smile


--------------------
Человек, словно в зеркале мир — многолик, 
Он ничтожен — и он же безмерно велик!
Омар Хайям
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0802 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.