![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 7.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam postaram się w miarę (jak na możliwości wtorkowego poranka) zrozumiale opisać problem (IMG:http://webmade.org/forum/images/smiles/icon_wink.gif)
Mam formularz, który powiela się po wduszeniu przycisku. Nazwy poszczególnych pól zmieniają na zasadzie dodania kolejnego indeksu na końcu (prosty javascript). Jestem jeszcze dość zielony w php i nie do końca wiem jak odczytać wpisane dane. Oczywiście manualne wpisywanie Kod print $team1; print $team2; print $team3; ... print $team(i tak do usranej śmierci); byłoby zapewne głupie i da się to samo osiągnąć za pomocą jakiejś sprytnej pętelki. Dodałem w formularzy pole counter, które jest automatycznie zwiększane o 1 przy każdym dodaniu nowej lini formularza. Pierwsza linia będzie odczytywana zawsze ręcznie, ale reszta ma już indeksy na końcu. Mogę zrobić pętlę w następujący sposób: Kod for($i=1; $i<=$counter; $i++){ print $team1[i]; print $team2[i]; print $channel[i]; print $date[i]; print $time[i]; Nie wiem tylko jak sprawić, aby ostatni znak stringa z nazwą zmiennej był traktowany jako indeks. I w tym drodzy forumowicze proszę was o pomoc! formularz można sobie obejrzeć pod www.bartosz.dk/pub |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 7.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ok, znalazłem rozwiązanie. count($_REQUEST) jest tym czego szukałem! Dzięki za pomoc
No tak, ale natrafiłem na jeszcze jeden problem. Nie potrafię przesłać wartości counter do save.php. Umieszczenie pola w istniejącym formularzu jakoś mi nie pasuje, bo jego nazwa i tak będzie się zmieniała razem z dodawanymi polami. A cały problem tkwi w tym, że potrzebuje tej ostatniej wartości, aby ograniczyć pętlę. Może jest jakiś sposób aby przesłać wartość zmiennej counter razem z danymi formularza przy wduszeniu send? Mam to zorganizowane tak: javascript dodający nowe pola formularza: Kod function moreFields() { counter++; var newFields = document.getElementById('readroot').cloneNode(true); newFields.id = ''; newFields.style.display = 'block'; var newField = newFields.getElementsByTagName('*'); for (var i=0;i<newField.length;i++) { var theName = newField[i].name; if (theName) newField[i].name = theName + counter; } var insertHere = document.getElementById('writeroot'); insertHere.parentNode.insertBefore(newFields,insertHere); document.getElementById('counter').value = counter; } zwykłe pole tekstowe przechowujące jego wartość jest umieszczone tuż za divem który się powiela: Kod <form method="post" action="save.php"> <input type="text" id="counter" name="counter" /> <span id="writeroot"></span> <input type="button" id="moreFields" value="Add more" /> <input type="submit" value="Send form" /> </form> całość w akcji oczywiście na bartosz.dk/pub Ten post edytował Kloucek 7.10.2008, 13:15:21 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 08:15 |