Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript] dodanie kolejnego pola input
Forum PHP.pl > Forum > Przedszkole
srwsio
Piszę sobie na własne potrzeby upload plików zdjęciowych. Mały bez tam jakichś wodotrysków. Znalazłem na internecie w jakimś tam uplojdzie taki oto skrypt js (o ile o php mi coś wiadomo to o js nie wiem nic smile.gif )

  1. <script language="JavaScript">
  2. var x = 1;
  3.  
  4. function addMore() {
  5. x = x + 1;
  6. if (x > 10)
  7. alert("Sorry ! Nie możesz dodać więcej niż 10 zdjęć jednocześnie.");
  8. else
  9. document.getElementByType("dodaj" + x).style.display = "block";
  10. }
  11. </script>


wywołuje się to przez
  1. echo "<a href=\"#\" onclick=\"addMore()\">Wyślij więcej</a>";

przy czym w każdym formularzu należy miec znacznik table o id=upload1 , upload 2 i tak dalej w zależności od ilości zdefiniowanej w js

Akurat ja przesyłam sobie pliki przez taki oto formularz
  1. <form name=\"formularzyk\" enctype=\"multipart/form-data\" method=\"post\" action=\"zdjecia.php\">
  2. <p><input type=\"file\" size=\"50\" name=\"zdjecie[]\" value=\"\" /></p>
  3. <p><input type=\"file\" size=\"50\" name=\"zdjecie[]\" value=\"\" /></p>
  4. <p class=\"button\"><input type=\"hidden\" name=\"action\" value=\"multiple\" />
  5. <input type=\"submit\" name=\"Wyślij\" value=\"upload\" /></p>
  6. </form>



I chciałbym dostosować ten powyższy js do tego kodu powyżej. Tak żeby klikając 'Wyślij więcej' dodało mi kolejną linię
  1. <p><input type=\"file\" size=\"50\" name=\"zdjecie[]\" value=\"\" /></p>

Z góry dziękuję
Szeszek1992
Wujek Google zawsze pomoże;)
http://www.internetmaker.pl/artykul/3758,1...formularza.html
Wszystko ładnie i dokładnie wyjaśnione jak takie coś zrobić.
srwsio
z tym że to co podałeś to jest dokładnie to co ja już mam. jak zauważyłeś JS dodaje do "name" tworzonego inputa kolejna cyferkę czyli pola wyglądają tak :
  1. <form name=\"formularzyk\" enctype=\"multipart/form-data\" method=\"post\" action=\"zdjecia.php\">
  2. <p><input type=\"file\" size=\"50\" name=\"zdjecie1\" value=\"\" /></p>
  3. <p><input type=\"file\" size=\"50\" name=\"zdjecie2\" value=\"\" /></p>
  4. <p class=\"button\"><input type=\"hidden\" name=\"action\" value=\"multiple\" />
  5. <input type=\"submit\" name=\"Wyślij\" value=\"upload\" /></p>
  6. </form>


a ja u siebie mam tabice czyli name= "zdjecie[]".

tak jak pisałem nie znam sie całkowicie na js dlatego też może nie zroumiałem tego przykładu?

Szeszek1992
Nie wiem, czy Cię dobrze zrozumiałem, ale czy
chcesz, aby dając nazwę inputa jako zdjecie[], tworzyło ci tablicę w PHP?

Wszystkie pliki, które prześlesz, znajdują się w tablicy $_FILES, a indeks w tablicy jest nazwą inputa(zdjecie1, zdjecie2, zdjecie...).
Teraz tylko pętla:
  1. $l=1;
  2. while(isset($_FILES['zdjecie'.$l]))
  3. {
  4. $plik_tmp = $_FILES['zdjecie'.$l]['tmp_name'];
  5. $plik_nazwa = $_FILES['zdjecie'.$l]['name'];
  6. $plik_rozmiar = $_FILES['zdjecie'.$l]['size'];//Możesz to wykorzystać, jeśli chcesz ustawić maksymalny rozmiar pliku
  7.  
  8. if(is_uploaded_file($plik_tmp))
  9. {
  10. move_uploaded_file($plik_tmp, 'FolderWKtorymChceszZapisac/'.$plik_nazwa);
  11. }
  12. $l++;
  13. }

I upload gotowy;)
srwsio
poradziłem sobie smile.gif po prostu dodaje teraz kolejny input wykorzystując nie wartość name a wartość id smile.gif


dzięki wielkie za pomoc
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.