![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Kombinuje z tym już jakiś czas i ni w ząb nie mogę na nic wpaść. Robię coś takiego: Prosty formularz a w nim input (type="file"). Obok niego button "dodaj więcej plików", który to wrzuca do formularza poprzez JS kolejnego inputa typu "file". Chodzi mi o to by użytkownik mógł wybrać kilka plików i je wysłał (ile - to zależy od niego). Atrybut name inputów oczywiście wygląda tak: "images[]". Pod każdą inną przeglądarką (w tym IE10) to działa a pod IE9 form wysyłany jest z tylko pierwszym wybranym plikiem. Ktoś wie o co może chodzić? Z listingu powyżej wysyłany jest tylko jeden plik (pierwszy). Inputy w JS wrzucałem przy pomocy "cloneNode", jQuery, tworzyłem element od nowa i wrzucałem jako innerHTML - żadna metoda nie działa. -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Jesteś pewien, że strukutra forma jest poprawna? Nic z niczym się nie przeplata? Możesz gdzieś pokazać to online?
Kiedyś koleś miał identyczny problem: dynamicznie dodawane rzeczy nie szly formem a okazalo się ze miał taką sieczkę w formie, że cud ze w ogole mu cokolwiek szło -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Treść jest dokładnie taka jak powyżej
![]() Tak czy owak doszedłem do rozwiązani (może nie w pełni ale działa) UWAGA! Bo rozwiązanie jest ciekawe ![]() Złe podejście dla IE9: (jak widać ![]() Mamy input, dodajemy go do forma przez JS, wybieramy plik, wysyłamy formularz, nie działa... Dobre podejście: Mamy input, dodajemy go do formularza przez JS, wybieramy plik, ponownie dodajemy go do formularza przez JS (appendChild itp), wysyłamy formularz, DZIAŁA ... Nie mam zupełnie pojęcia o co chodzi... może to kwestia "mojego IE"... sam już nie wiem - przetestuje to na innych maszynach bo problem ciekawy jak widać ![]() -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 890 Pomógł: 339 Dołączył: 14.12.2006 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Mamy input, dodajemy go do formularza przez JS, wybieramy plik, ponownie dodajemy go do formularza przez JS (appendChild itp), wysyłamy formularz, DZIAŁA ... No nie, tak to zdecydowanie nie powinno działać. Nieważne jaki <input type="file" /> dodasz do formularza, zawsze będzie miał on puste value (względy bezpieczeństwa). Jeśli nadpisywałbyś istniejący input nowym, wygenerowanym w JS, to na pewno nie zostałaby w nim zawartość value. Więc albo źle opisałeś wyjście, albo jak pisał nospor, masz coś nieźle skopane w innym miejscu ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Nie nie - mi nie chodziło o kopiowanie inputa razem z plikiem - ani jego klonowanie - nic z tych rzeczy. Ja tworzyłem za każdym razem nowy, pusty input, nastepnie wybierałem w nim plik i wysyłałem formularz. Kończyło się to tym, że nie wysyłane były pliki z inputów dodanych w ten sposób. Dopiero jak w zdarzeniu "change" danego inputa dałem:
to zaczęło to działać. Oczywiście input już był wcześniej w formie, więc ta operacja teoretycznie nie robi nic nowego - a jednak ![]() EDIT: na stronie był tylko jeden formularz w obrębie którego był ten dodany input Ten post edytował Sephirus 13.05.2013, 12:49:51 -------------------- If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;) Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.06.2025 - 06:01 |