Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie dynamiczne elementów html
Forum PHP.pl > Forum > PHP
Fluke
Witam was wszystkich

Zastanawiałem się gdzie umieścić ten wątek bo równie dobrze może być w PHP, PHP > Frameworki (mam pewne rozwiązanie do mojego problemu dzięki formularzom), XML,AJAX.
A mój problem polega na tym, że mam tabelę products i relację do niej 1-wielu do attributes. Użytkownik może dodawać, usuwać, modyfikować atrybuty. Zastanawiam się jak umożliwiać użytkownikowi dodawanie atrybutów:
- czy za pomocą formularza w framework`u stworzyć sobie subForm o nazwie AttributeTemplate i umieścić go po za <form>, tak aby nie zostały przesłane jego dane. Rozwiązanie moim zdaniem jest ok, tylko tworzy niepotrzebny HTML, ale gdy zmienimy coś w formularzu to również ten template nam się zmieni i nie musimy grzebać w JavaScript.
- czy za pomocą JavaScript tworzyć odpowiedni formularz
- za pomocą AJAX pobrać subForm, to rozwiązanie chyba jest najgorsze.

Taki przykładowy subForm wygląda tak:
  1. <div>
  2. <input type="hidden" value="1" name="product[attributes][0][id]"/>
  3. <input type="hidden" value="1" name="product[attributes][0][idProduct]"/>
  4. <input type="hidden" value="width" name="product[attributes][0][name]"/>
  5. <input type="hidden" value="100cm" name="product[attributes][0][value]"/>
  6. </div>


I taki formularz chciałbym generować dynamicznie, po wciśnięciu przycisku "Dodaj atrybut".

Z góry dzięki za propozycje
Pozdrawiam
kamillo1888
jQuery append()
Polecam się zapoznać.
Fluke
@kamillo1888

Znam tę funkcję i oczywiście używam, ale nie o to mi chodziło w tym pytaniu. Zastanawiam się czy generować formularze za pomocą JavaScript czy może ewentualnie za pomocą PHP (Zend) gdzieś umieścić po za znacznikami <form></form> taki "template" formularza i za pomocą JavaScript(jQuery) po wciśnięciu button`a, wszczepić ten kawałek między znacznikami form></form>. Drugie rozwiązanie ma o tyle dobre zalety według mnie, że jak dodam coś do formularza, jakieś kolejne pole to nie muszę już grzebać w JavaScript.

Chciałbym dowiedzieć się jakie wy macie rozwiązanie co do tego problemu. Jak na razie robię według drugiego sposobu ale nie wiem czy jest to praktyczne. Mój kod prawdopodobnie niedługo będzie ktoś inny edytować i nie chcę zostawiać źle rozwiązanych problemów.

Pozdrawiam gorąco.
freemp3
Możesz wrzucić pusty formularz do niewidocznego kontenera w HTML. Jeśli ktoś będzie chciał dodać nowy atrybut po prostu skopiujesz zawartość i wkleisz w odpowiednim miejscu. Dodatkowo jeśli coś zmienisz w formularzu nie będziesz musiał edytować JS ponieważ będzie on automatycznie zmieniany w HTML.
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.