Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZF] Elementy text/select jako tablice
Forum PHP.pl > Forum > PHP > Frameworki
czesiotest
Witam,

W jaki sposób można w Zend Framework używając Zend_Form stworzyć takie elementy formularza:
  1. <div>
  2. <input type="text" name="test1[]">
  3. <input type="text" name="test2[]" value="1">
  4. <select name="test3[]">
  5. <option value="">-- Wybierz --</option>
  6. <option value="1">test</option>
  7. </select>
  8. </div>
  9. <div>
  10. <input type="text" name="test1[]">
  11. <input type="text" name="test2[]" value="2">
  12. <select name="test3[]">
  13. <option value="">-- Wybierz --</option>
  14. <option value="1">test</option>
  15. </select>
  16. </div>


Taki kod:
  1. $this->addElement('text', 'test1', array(
  2. 'isArray' => true,
  3. ));
  4.  
  5. $this->addElement('text', 'test2', array(
  6. 'isArray' => true,
  7. ));
  8.  
  9. $this->addElement('select', 'test3', array(
  10. 'isArray' => true,
  11. ));

Tworzy mi jak najbardziej poprawnę elementy "text" jednak nie chcę wielokrotnego wyboru selecta. Dodatkowo jak wypełnić taki formularz (populate nie działa przekazując tablice do elementów text), tak aby pojawiło się parę grup tych elementów?

Formularz ma mieć możliwość dynamicznej ilości grup pewnych elementów.
KrzysiekWildfire
Może inaczej, jak do czego chcesz wykorzystać ten formularz, bo morze warto zmienić podejście. A aby zobaczyć jaką strukturę musi mieć tablica php aby zadziałało z populate to zrób w kontrolerze tak:

  1. if ($this->_request->isPost()){
  2. print_r($this->_request->getPost()); // na szybko możesz umieścić to w kontrolerze ale pamiętamy, że WSZYSTKO wyświetlamy w widokach <- to tak na szybko.
  3. }
tvister
Poniższy kod powinien rozjaśnić sprawe.
  1. $foo = new Zend_Form_SubForm();
  2. $foo->setElementsBelongTo('foo')
  3. ->setElements(array(
  4. 'bar' => 'text',
  5. 'baz' => 'text'
  6. ));
  7. echo $foo;

  1. <input type="text" name="foo[bar]" id="foo.bar" value="" />
  2. <input type="text" name="foo[baz]" id="foo.baz" value="" />
KrzysiekWildfire
Zawsze można zrobić to przy pomocy sub-formów.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.