Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodawanie elementu tablicy a formularz
Forum PHP.pl > Forum > Przedszkole
Ariandail
Witam
Czy można dodać element do tablicy array wielokrotnie z jednego pola formularza. Jak napisać odwołanie do funkcji PHP w parametrze acrion formularza? Jak nadawać kolejne nazwy takiej zmiennej tzw $_POST['nazwa'] w tablicy.
Siedzę nad tym już tydzień, ale w końcu jestem humanistą smile.gif
marcio
Nie rozumiem zabardzo co chcesz osiagnac.
parzygnat
Czasami nie warto siedziec cały tydzień tylko wystarczy się zapytać na forum smile.gif
Odpowiedz na pytania:
- mozna dodać wielokrotnie ale za kadym razem musisz przeładowywać stronę z formularzem;
- w parametrze action formularza wpisuje się odwołanie do pliku (np. pliku php który zawiera taką funkcję php i następnie kieruje Cię spowrotem na stronę z formularzem;
- z nadawaniem nazw kolejnej zmiennej jest troszkę wieksz problem; jak będziesz nadal zainteresowny to pokaż jak wygląda ten formularz to pomogę.
marcio
Cytat
- mozna dodać wielokrotnie ale za kadym razem musisz przeładowywać stronę z formularzem;
- w parametrze action formularza wpisuje się odwołanie do pliku (np. pliku php który zawiera taką funkcję php i następnie kieruje Cię spowrotem na stronę z formularzem;

Jesli o to chodzi pierwszy problem mozna rozwiazac za pomoca Ajax'a

Pamietaj ze w action="" mozesz tez dawac akcje z get'a
Ariandail
Dzięki serdeczne - dowiedziałem się w końcu, że nie dam rady tego zrobić bez ajaxa lub java skyptu. Chciałem po prostu wyliczyć kolejne wartości tak jak to robi excell. Np. Jedzenie - 430 zl Kosmetyki - 300 zl, suknia ślubna- 2000 zl itd. Tylko zeby nie pisać wszystkich <input> bo nie wiem ile ich będzie. Problem w tym że odwołanie do skryptu czyści argument i zostaje tylko jedna wartość tablicy $_POST['nazwa'].
marcio
Hmmm to jesli cie dobrze zrozumialem mozesz pokombinowac troche inaczej tak jak jest to w Netftpd2 nie kombinowac z Java ani Ajax'em a czystym js robic poprostu dynamiczne pola input za pomoca tablic czyli bede one wygladaly
Kod
<inpit type="text" name="cos[0]">

I dzialalo by to tak gdy wypelnisz pierwszy input do zdarzenia onBlur="" mozesz dodac funkcje ktora bedzie szukac id tablicy ostatniego input'a i robily nastepny z id+1

Tu masz kod z Netftpd2 ktory robi takie cos dla uploadowaniu wiecej plikow:
Kod
<script>
function add_file(id, i) {
    if (document.getElementById(id + '_' + i).innerHTML.search('uploadinputbutton') == -1) {
        document.getElementById(id + '_' + i).innerHTML = '<input type="file" class="uploadinputbutton" maxsize="" name="' + id + '[]" onChange="return add_file(\'' + id + '\', ' + (i+1) + ');" /><br /><span id="' + id + '_' + (i+1) + '"><input type="button" value="Add other" onClick="add_file(\'' + id + '\', ' + (i+1) + ');" /><\/span>\n';
    }
}
</script>


Cytat
<form name="UploadForm" id="UploadForm" method="post" enctype="multipart/form-data" action="/net2/index.php">
<a href="java script: document.UploadForm.state.value='browse'; document.UploadForm.state2.value='main'; document.UploadForm.submit();" title="Wstecz (accesskey cool.gif" accesskey="b"><img src="images/actions/crystal/back.png" alt="Wstecz (accesskey cool.gif" onMouseOver="this.style.margin='0px';this.style.width='34px';this.style.height='34px';" onMouseOut="this.style.margin='1px';this.style.width='32px';this.style.height='32px';" style="border: 0px; margin: 1px; width: 32px; height: 32px;" /></a>
&nbsp <a href="java script: createUploadWindow(); document.UploadForm.submit();" title="Wyślij (accesskey v)" accesskey="v"><img src="images/actions/crystal/button_ok.png" alt="Wyślij (accesskey v)" onMouseOver="this.style.margin='0px';this.style.width='34px';this.style.height='34px';" onMouseOut="this.style.margin='1px';this.style.width='32px';this.style.height='32px';" style="border: 0px; margin: 1px; width: 32px; height: 32px;" /></a>
<br /><br />
Wyślij do katalogu: <input type="text" class="longinput" name="directory" value="/www/cms" />

<a href="java script: createDirectoryTreeWindow('/www/cms', 'UploadForm.directory');" title="Lista" ><img src="images/actions/crystal/view_tree.png" alt="Lista" onMouseOver="this.style.margin='0px';this.style.width='34px';this.style.height='34px';" onMouseOut="this.style.margin='1px';this.style.width='32px';this.style.height='32px';" style="border: 0px; margin: 1px; width: 32px; height: 32px;" /></a>
<br /><br />
<input type="hidden" name="net2ftp_ftpserver" value="szu.pl" />
<input type="hidden" name="net2ftp_ftpserverport" value="21" />
<input type="hidden" name="net2ftp_username" value="marcio@szu.pl" />
<input type="hidden" name="net2ftp_password_encrypted" value="7903CE1C2DF0990DF40E0E" />
<input type="hidden" name="net2ftp_language" value="pl" />
<input type="hidden" name="net2ftp_skin" value="1" />
<input type="hidden" name="net2ftp_ftpmode" value="automatic" />
<input type="hidden" name="net2ftp_passivemode" value="" />
<input type="hidden" name="net2ftp_sslconnect" value="" />
<input type="hidden" name="net2ftp_viewmode" value="" />
<input type="hidden" name="net2ftp_sort" value="" />
<input type="hidden" name="net2ftp_sortorder" value="" />
<input type="hidden" name="state" value="manage" />
<input type="hidden" name="state2" value="uploadfile" />
<input type="hidden" name="formresult" value="result" />

<input type="hidden" name="max_file_size" value="50000000" />
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" width="50%">
<div class="header31">Pliki</div><div style="font-size: 80%;">Wpisane tu pliki będą wysłane na serwer FTP.</div><br />
</td>
<td valign="top" width="50%">
<div class="header31">Archiwa (zip, tar, tgz, gz)</div><div style="font-size: 80%;">Wpisane tu archiwa będą wysłąne na serwer FTP.</div><br />
</td>
</tr>
<tr>
<td valign="top" width="50%">
<input type="file" class="uploadinputbutton" maxsize="50000000" name="file[]" onChange="add_file('file', 1);" /><br><span id="file_1"><input type="button" value="Dodaj następne" onClick="add_file('file', 1);" /></span>

<br />
</td>
<td valign="top" width="50%">
<input type="file" class="uploadinputbutton" maxsize="50000000" name="archive[]" onChange="add_file('archive', 1);" /><br><span id="archive_1"><input type="button" value="Dodaj następne" onClick="add_file('archive', 1);" /></span>
<br /><div style="font-size: 80%;"><input type="checkbox" name="use_folder_names" value="yes" checked/> Użyj nazw katalogów (automatycznie tworzy podkatalogi)</div><br />
</td>
</tr>
</table>
</form>

Mam nadzieje ze to ci pomoze zrozumiec o co mi chodzi, Patrz na funkcje js i pogrubiony Kod.
Ariandail
Dzięki, ale masz głowę. Chylę czoła. Naprawdę nie wiem jak można tyle umieć. Ja mam rok przerwy w pracy więc dużo czasu przedemną smile.gif
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.