parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Странно, у меня работает.. =)

Безымянный 25.07.2005 16:17

Давайте разберем по строкам:
$answers.text  <input type="text" name="asw_$answers.id_question">
$answers - таблица со всеми вопросами.
$answers.text <input type="text" name="asw_$answers.id_question">
Здесь выводим список вопросов, причем имена текстовых полей = asw_id_вопроса.

Дальше идёт скрипт обработки данных пришедших из этой формы.
^form:fields.foreach[field;value]{
Перебираем все поля формы.
^if(^fields.match[asw_[0-9]+][]){
Здесь проверяем, если имя переменной из формы соответствует полю вопроса (asw_id_вопроса), то обрабатываем:
$asw_id[^fields.match[asw_([0-9]+)][]{$match.1}]
Regexp'ом отсекаем у _имени_ переменной asw_, в $asw_id попадает только id_вопроса. А в $value соответственно содержится текст ответа на этот вопрос.

Вот простой код, чтобы логику понять:
<form method="post">
$answers[^table::create{id_question	txt
1	q1
2	q2
3	q3
4	q4
5	q5
}]
^answers.menu{
  <input type="text" name="asw_$answers.id_question"> : $answers.txt
}[<br />]

<br /><input type="submit"><br />
Обработка:

^form:fields.foreach[field;value]{
   ^if(^field.match[asw_[0-9]+][]){
     $asw_id[^field.match[asw_([0-9]+)][]{$match.1}]
     $asw_id, '$value'<br />
   }
}