![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Sprawa jest taka, że nie znam JS, a potrzebuję formularza, który dodawałby pola typu 'file' do formularza nie kasując zapisanych wartości w poprzednich polach.. Konkretnie to chcę przesłać na serwer nieznaną wcześniej ilośc plików (np fotek) i po dodaniu każdego pliku chciałbym, żeby istniała możliwość bądź wysłania tego co jest bądź dołożenia kolejnego pliku (dopisania do formularza kolejnego pola input typu file).
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 614 Pomógł: 7 Dołączył: 10.11.2003 Skąd: Rzeszów/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Ja bym to zrobił mniej więcej tak:
Kod addFileInput = function(parentElement){ var inputName = prompt('Atrybut name dla kolejnego inputa', ' '); var fileInput = document.createElement("input"); fileInput.type = "file"; fileInput.name = inputName; fileInput.value = ''; parentElement.appendChild(fileInput,parentElement.firstChild); } window.onload=function(){ var insert = document.getElementById('addFileInput'); if(insert){ insert.onclick = function(){ addFileInput(insert.parentNode); } } else { return false; } } -------------------- Pokaż kod = Pokaż CAŁY kod, najlepiej działający na jakimś serwerze.
Fanatycy | glazar.info | semantyka | HTML i XHTML FAQ |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki
![]() ![]() Niastety mam (i większość moich znajomków) mozillkę 1.7.2... a tu już sprawa wygląda gorzej.. po kliknięciu buttona 'dodaj plik' nie wskakuje nowe pole input.. Mam jednak coś co działa tylko.. sorki ale proszę mi wybaczyć zupełną zieloność nie wiem gdzie wstawić znacznik nowej lini żeby to jakoś wyglądało na stronce (no żeby nowy input wyskakiwał w nowym wierszu a nie obok poprzedniego.. No i czy to się da jakoś przerobić na zbilżony do pospolitego formularza (gdzie mogę określić metodę i skrypt docelowy php)w części kodu html? oto kody JS i html Kod var countInputs = 0; function addInput(id) { var oDiv = document.getElementById(id); var inputElement = document.createElement("input"); inputElement.setAttribute("name","userfile_"+countInputs); inputElement.setAttribute("type","file"); oDiv.appendChild(inputElement); countInputs++; } |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
Zademonstruje Ci na przykładzie selecta:
Kod function $(id){ return document.getElementById(id); } function make_select(div){ var select = document.createElement("select"); select.name = "przeladunek_z["+numer+"][]"; var br = document.createElement("br"); $(div).appendChild(br); //o cała tajemnica <Br> $(div).appendChild(select); } -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 614 Pomógł: 7 Dołączył: 10.11.2003 Skąd: Rzeszów/Kraków Ostrzeżenie: (0%) ![]() ![]() |
Zamieniłbym jednak diva na fieldset.
A co do mojego przykładu, wystarczy usunąć linijkę: Kod fileInput.value = ''; i stara Mozilla powinna też łykać. -------------------- Pokaż kod = Pokaż CAŁY kod, najlepiej działający na jakimś serwerze.
Fanatycy | glazar.info | semantyka | HTML i XHTML FAQ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
dzięki serdeczne
![]() ale niestety ten nie działa wogóle (mimo poprawienia błędu w linku do funkcji) ani w mozillce ani w IE ![]() cóż mimo wszystko dzięki.. już mam 3 różniste przykłady rozwiązania to może w końcu pojmę jak to-to (javascript) działa ![]() w każdym razie Dzięki ( również za to że nie dostałem tu wiązanki określającej precyzyjnie poziom mojej tępoty w zakresie JS.. ![]() |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
witam wyjadaczy
![]() ktoś może wie dlaczego to mi działa w mozilli a w IE nie che?? Kod <script type="text/javascript"> function addInput(id) { var countInputs = 0; var Div = document.getElementById(id); var inputElement = document.createElement("input"); var br = document.createElement("br"); inputElement.setAttribute("name","userfile_"+countInputs); inputElement.setAttribute("type","file"); Div.appendChild(inputElement); Div.appendChild(br); countInputs++; } </script> i |
|
|
![]()
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Coś mi się widzi że o HTMLu słyszałeś tylko z daleka i niewyraźnie
![]()
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 59 Pomógł: 0 Dołączył: 4.06.2006 Skąd: Strzeszyce/Kraków Ostrzeżenie: (0%) ![]() ![]() |
A jak dorzucić do tego kodu funkcję odwrotną - po kliknięciu znikają kolejne pola, które wcześniej się dodało? a gdybym chciał na przykład oprócz file dodać jeszcze select z ustalonymi wartościami do wyboru...?
Ten post edytował yasiek 29.10.2006, 14:21:42 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 22.03.2006 Ostrzeżenie: (0%) ![]() ![]() |
Coś mi się widzi że o HTMLu słyszałeś tylko z daleka i niewyraźnie ![]()
Teraz take pytanko..jak przeiterować przez tak utworzoną tablicę w PHPie? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 23 Pomógł: 0 Dołączył: 5.04.2006 Skąd: Okolice Warszawy Ostrzeżenie: (0%) ![]() ![]() |
Ja sie przylacze do tematu pozwole sobie zapytac sie w jaki sposob dobrac sie do wartosci tych pola dynamicznie dodawanych, zeby np je walidowac. Mam pola dodawane tak jak na ponizszym przykladzie ale nie wiem w jaki sposob przy pomocy JavaScriptu odczytac kolejne wartosci z powstalej tablicy:
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 614 Pomógł: 7 Dołączył: 10.11.2003 Skąd: Rzeszów/Kraków Ostrzeżenie: (0%) ![]() ![]() |
@yasiek: dodawać id dla kazdego inputa i usuwac element odwolujac się do rodzica, np.:
@wowerson: Można zmienić name na userfile[+countInputs+], wtedy jest regularna tablica. @kryspi: getElementsByTagName('input') -------------------- Pokaż kod = Pokaż CAŁY kod, najlepiej działający na jakimś serwerze.
Fanatycy | glazar.info | semantyka | HTML i XHTML FAQ |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 04:59 |