parser

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

 

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

Помогите! Не могу понять происходящего.

EugeneFox 07.03.2007 23:14

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

@body_main[]
$it[^items::create[brand;goods_brand;марка]]
^it.show_items[]
^it.show_add_or_del_form[]
^it.test_and_add_item[]

в котором используются методы класса items.
Всё прекрасно заработало. Как же иначе, ведь это полный аналог описанной в "Руководстве ..." гостевой книги.

Но вызов должен происходить из формы описанной следующим образом:

<form method="post" action="/admin/adm_main.html">
Что будем делать?<br>
^act.menu{<input type="radio" name="choise" value="$act.id">$act.action<br>}
<input type="submit" value="Приступим?"></span>
</form>

Возникает необходимость обработки параметра $act.id, поэтому
я внёс проный метод ^if:

@body_main[]
^if($form:choise+0 == 21){
$it[^items::create[brand;goods_brand;марка]]
^it.show_items[]
^it.show_add_or_del_form[]
^it.test_and_add_item[]
}

...и всё перестало работать.

Точнее отрабатывается сравнение, создаётся объект it, выдаётся список уже существующих записей в базе, выдаётся форма для занесения новой марки, а после нажатия на кнопку "внести" вызов ^it.test_and_add_item[] просто игнорируется. Т.е. в базу ничего не записывается, происходит повторное выполнение ^if($form:choise+0 == 21){..., конечно же, с новым наполнением полей класса form.

Такая непонятка. ПОМОГИТЕ.

Код передан в первоначальном виде, хотя на данный момент он оброс различными метками для отслеживания процесса работы.
Причём такая же история и с методом switch.

Ниже приведены два метода из класса items:

@show_add_or_del_form[]
<form method="post">
Как называется новая $name_item товара? <br><input name="item">
<input type="submit" value="Внести в базу" name="post">
</form>

@test_and_add_item[]
$form:item
^if(def $form:post){
^if(def $form:item){
^MAIN:dbconnect{
^void:sql{insert into $table_item values (null,'$form:item')}
}
$response:location[$request:uri]
}{
Вы не ответили на вопрос.
}
}

  • Помогите! Не могу понять происходящего., EugeneFox 07.03.2007 23:14