Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZendFramework] Zend_Form + Ajax data, dynamiczna zawartość formularza
Astarot
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 4
Dołączył: 5.02.2006

Ostrzeżenie: (0%)
-----


Witam,
Spróbowałem napisać aplikację w ZF z wykorzystaniem Zend_Form.
W przypadku zwykłych, statycznych formularzy nie mam problemu z obsługą formów od ZF.
Potrzebuję jednak wyświetlić podkategorie(selectem) dla wybranej wyżej kategorii(select).
Pomyślałem sobie, że jedynym rozsądnym rozwiązaniem będzie ajax, dodałem do selecta z kategoriami zdarzenie onChange, w js ajaxem odebrałem ID kategorii, następnie
zastąpiłem pusty select podkategorii (generowany w Zend_Form) elementem o tym samym id i name uzupełnionym o opcje pobrane ajaxem.
Problem polega jednak na tym, że Zend_Form nic nie wie o opcjach które zostały dostarczone dzięki Ajax i wyrzuca błąd

  1. '1' was not found in the haystack


W jaki sposób prawidłowo należy rozwiązać problem z dynamicznymi formularzami(selectami) przy użyciu Zend_Form?

Chyba znalazłem rozwiązanie problemu, może nie jest za bardzo eleganckie ale działa
Pobieram wszystkie podkategorie kategorii przy ładowaniu formularza, a dopiero po wybraniu konkretnej kategorii wyświetlam podkategorie przypisane do niej.
Dzięki temu Zend_Form wie z czym ma do czynienia
  1. //form..
  2. $categoryid = new Zend_Form_Element_Select('categoryid');
  3. $categoryid->setLabel('Kategoria');
  4. $categoryid->addMultiOptions(array('' => '-- Wybierz --'));
  5. $category = new Application_Model_Mapper_SiteCategory;
  6. $category = $category->getAll();
  7. foreach($category as $obj)
  8. $categoryid->addMultiOptions(array($obj->id => $obj->name));
  9.  
  10. $subcategoryid = new Zend_Form_Element_Select('subcategoryid');
  11. $subcategory = new Application_Model_Mapper_SiteSubCategory;
  12. $subcategory = $subcategory->getAll();
  13. foreach($subcategory as $obj)
  14. $subcategoryid->addMultiOptions(array($obj->id => $obj->name));
  15. $subcategoryid->setLabel('Podkategoria');
  16. $subcategoryid->setRequired(true);
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 11:43