![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 4.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
Witam, napisałem kod w którym są 3 inputy chcę aby po kliknięciu buttonu były dodawane kolejne 3 i tak dalej i tak dalej. znalazłem na internecie pewien poradnik ale mi nie wychodzi :/ prosze o pomoc oto skrypt java script:
<script type="text/javascript"> <!-- function dodaj_element(kontener){ var znacznik = document.createElement('input'); znacznik.setAttribute('type', 'text'); znacznik.setAttribute('name', 'plik'); znacznik.className = 'upload'; var kontener = document.getElementById(kontener); kontener.appendChild(znacznik); } //--> </script> Oto mój kod PhP:
Gdzie tu jest błąd (IMG:style_emoticons/default/questionmark.gif) prosze o pomoc Ten post edytował gruchanerka 4.02.2012, 19:29:48 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 76 Pomógł: 1 Dołączył: 5.09.2007 Ostrzeżenie: (0%) ![]() ![]() |
appendChild może być do diva, a nie do inputa.
ten kontener to gdzie jest? I bez cudzysłowu to jakby był zmienną. Błagam cię, mamy 2012, używaj frameworka!!! (np. www.jquery.org) PS: To nie jest problem php. Ten post edytował Morfi777 4.02.2012, 19:55:06 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 561 Pomógł: 72 Dołączył: 15.11.2006 Ostrzeżenie: (0%) ![]() ![]() |
Zamiast: onclick="java script:dodaj_element(plik)", powinno być: onclick="dodaj_element('pliki'); return false" A jako że masz to wszystko w echo - musisz escapować apostrofy, zrób tak: onclick="dodaj_element(\'pliki\'); return false;"
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Po pierwsze skoro są to elementy o takiej samej nazwie, to powinny być potraktowane jako tablica elementów. Czyli:
W przeciwnym wypadku do $_POST zostanie przekazany tylko jeden element. Po drugie nie $_POST['2'], a $_POST['pliki'][0], $_POST['pliki'][1], itd..., w zależności od ilości input-ów. Chyba, że $_POST['2'] to jakieś pole kontrolne, ale w takim przypadku jest to niezgodne ze specyfikacją (X)HTML, bo nazwa (name) elementu input nie może być cyfrą. @Morfi777: Jest to również problem z PHP, a to o czym pisałeś, to tylko kropla w morzu. EDIT: Ten argument w funkcji dodaj_element jest raczej niepotrzebny. Zastosuj się również do rady krowala. Ten post edytował mortus 4.02.2012, 20:05:51 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 4.02.2012 Ostrzeżenie: (0%) ![]() ![]() |
dzięki krowal (IMG:style_emoticons/default/smile.gif) naprawdę pomogłeś. a mam jeszcze jedno pytanie jak zrobić żeby nie tylko 1 imput że to tak nazwę się klonował (IMG:style_emoticons/default/biggrin.gif) tylko wszystkie 3 (IMG:style_emoticons/default/smile.gif) i aby dodawało rosnąco nazwę czyli plik1, plik2, plik3 tak samo w pozostałych imputach (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 178 Pomógł: 596 Dołączył: 25.09.2009 Skąd: Piwniczna-Zdrój Ostrzeżenie: (0%) ![]() ![]() |
Przeczytaj mój post wyżej. Jest to jedyne słuszne rozwiązanie. Jeśli chodzi o nadawanie różnych nazw kolejnym inputom to po stronie JS nie stanowi to problemu. Problemem będzie jednak odczytanie wartości tych pól po stronie PHP, ponieważ nie bedziesz wiedział, jaką liiczbę pól input przesyła użytkownik. Masz zatem dwa wyjścia:
1. albo to rozwiązanie, które Ci podałem, z banalną pętlą w PHP, 2. albo dynamiczne zmienianie nazw pól po stronie JS i już nie tak banalna pętla w PHP. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 02:11 |