Edycja: Naprawiłem problem, zaczynając od zera. Przepraszam, że tracę czas. Głosuj, aby zamknąć, jeśli czujesz się tak pochłonięty.Dodaj element formularza dynamicznie za pomocą javascript - nie przesyłając
Mam problem z uzyskaniem rzeczywistych danych w formularzu do przesłania, gdy pola wejściowe są dodawane za pośrednictwem javascript. Pola pojawiają się i we właściwym miejscu, ale kiedy robię var_dump (fieldname) po stronie serwera, nic nie pokazuje się. Sprawdzanie za pomocą nagłówków Live HTTP mówi mi, że przeglądarka nie próbuje przesłać dynamicznie dodanych pól formularza.
Czy muszę jakoś "dołączyć" moje dynamicznie utworzone formularze do formularza?
Mój kod:
HTML
<form id="att_form" method="post" name="add_attachments" enctype="multipart/form-data" action="#">
<-- below input to prove form submits, just not the dyn added elements -->
<input name="data[one]" type="text" />
<div id="add_fields"></div>
<input type="submit" />
</form>
JavaScript
function addFormField()
{
var id = 1;
var htm = "<p id='row" + id + "'><input type='text' size='20' name='txt[]' id='txt" + id + "' /></p>";
$("#add_fields".append(htm);
}
Kiedy przesłać formularz, mój wkład nazwany danych [jeden] pojawia się jako wartość POSTd , ale te dodane przez addFormField() nie. Pojawiają się w kodzie HTML we właściwym miejscu, ale nie POST. Czy muszę dołączyć element jako dziecko do elementu formularza, aby go przesłać?
Widziałem, Submit form input fields added with javascript, w którym wpadłem na pomysł, aby dane zostały dołączone do formularza potomnego, ale będzie to wymagało pewnej restrukturyzacji mojego CSS. Mam więc nadzieję, że jest to coś prostego, co mogę zrobić w powyższym kodzie.
Z góry dziękuję!
edytuj: poprawiono literówki, ale nadal nie działa. Postanowiłem skorzystać z bezpłatnej metody biblioteki JS omawianej w powyższym linku SO, ponieważ to działa dobrze. Dzięki za pomoc!
Czy działa to w przypadku, gdy dołączasz html do, na przykład, nazwanego-'pola' 'dziecko formularza? –
Nie jestem pewien, ale staram się nie utknąć w tym wystąpieniu. Przechodzi do całkiem brzydkiego html. Zabrakło nam czasu, aby wypróbować wszystkie wspaniałe sugestie, ale dziękuję wszystkim za pomoc! Zamykanie problemu. –