2013-07-16 4 views
2

Я хочу сделать форму, разделенную на два этапа - каждая на отдельной странице. В зависимости от данных, приведенных на первом этапе, я хочу подготовить некоторые предварительно заполненные данные на втором этапе.Многостраничная форма в Zend Framework 2

Несмотря на то, что тратить много времени на поиск в google, я не могу найти его.

С логической точки зрения, я бы предпочел одну Zend \ Form и отдельные поля (??), чем создать две отдельные формы.

Итак, как это сделать правильно в Zend Framework 2?

ответ

2

Самый простой способ (я думаю) иметь две формы: и MyModule\Form\Step2. Step2 формы принимает некоторый вклад в конструкторе, который в зависимости от некоторых данных, начиная с шага 1.

пример, вы можете сделать это с заводом менеджера услуг:

'factories' => array(
    'MyModule\Form\Step1' => function($sl) { 
    return new MyModule\Form\Step1; 
    }, 
    'MyModule\Form\Step2' => function($sl) { 
    $request = $sl->get('Request'); 
    $data = $request->getPost(); 
    return new MyModule\Form\Step2($data); 
    } 
), 

Если вас GET страницы, где отображается первый, затем вы POST на вторую страницу и, наконец, POST до последней страницы. Во время построения второй формы вы используете данные POST и заполняете/создаете данные по мере необходимости.

+1

Спасибо;) Из того, что я вижу, его можно достичь только с помощью таких хаков/методов. Жаль, что нет способа сделать это более простым и «более чистым» r;) –