Форма param для объектов - PullRequest
       6

Форма param для объектов

1 голос
/ 29 ноября 2010

Я перешел на унаследованный сайт, и мой запах кода «паучий смысл» сходит с ума из-за параметров, используемых на сайте.

Например, у нас есть форма, которая позволяет вам добавить новый контакт или отредактировать существующий в зависимости от iContactId, присутствующего в URL.Таким образом, код в верхней части файла cfm имеет вид.

<cfparam name="form.name" default="">
<cfparam name="form.age" default="">
<cfparam name="form.surname" default="">
<--- More cfparams for every form field--->

<cfif isDefined("URL.iContactId")>
 <cfset VARIABLES.contact = contactService.getContact("URL.iContactId")/>
   <cfset FORM.name = contact.getName() />
   <cfset FORM.age= contact.getAge() />
   <cfset FORM.surname = contact.getSurname() />
 </cfif>

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

<form>
  <input name="name" value="#FORM.name#">

Теперь, для меня, проблема с этой техникой заключается в том, что на этой странице около 30 полей формы, поэтому я пармурирую все поля формы, а затем назначаю 30 полей формы контактным объектам.значения, если переменная URL.iContactId существует.Пытаюсь найти способ удалить это дублирование - может быть, путем сопоставления формы непосредственно с объектом?

Есть идеи?

Спасибо

1 Ответ

2 голосов
/ 29 ноября 2010

Не понимаю, почему нет.

Получите getContact (), чтобы вернуть «пустой» объект для идентификатора контакта 0 и заполнить форму из пустого объекта контакта.Под «пустым» я подразумеваю объект со значениями по умолчанию, установленными для каждого поля.

например.

if (!StructKeyExists(URL,"iContactID")) URL.iContactID = 0;
variables.contact = contactService.getContact(URL.iContactID);

и затем в форме.

<input name="name" value="#contact.getName()#">

Единственное, о чем следует знать;Если вы выполняете проверку на стороне сервера, которая возвращает вас к этой форме, вам нужно будет убедиться, что у вас есть контактный объект с действительными данными в нем, чтобы заполнить форму, чтобы можно было исправить недопустимые поля.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...