Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Problem z powielaniem formularza, ..i przesylaniem go
Crxiak
post 18.04.2007, 22:49:00
Post #1





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 18.04.2007

Ostrzeżenie: (0%)
-----


Witam.Staram sie stworzyc system w ktorym do zespolu bedzie mozna dodawac wielu userow w jednym formularzu.Userow moze byc dowolna ilosc ktora jest podawana w pierwszym formularzu.

plik1
  1. <?php
  2. include_once('funkcje2.php');
  3. laczenie();
  4.  
  5. if (isset($_SESSION['auth']) ) {
  6. print "<form action='2.php' method=POST>";
  7. print "<table border=1 align=center cellpadding=10>";
  8. print "<tr><td>Nazwa druzyny:</td><td><input type=text name=nazwa_druzyny>";
  9. print "</td></tr><tr><td> Kapitan:</td><td><input type=text name=kapitan></td></tr>";
  10. print "<tr><td>haslo:</td><td><input type=password name=haslo>";
  11. print " <tr><td>Ilosc zawodnikow:</td><td><input type=text maxlength=2 name=ilosc></td></tr>";
  12. print "<tr><td colspan=2><input type=submit value=dalej></td><tr>";
  13. }
  14. else {
  15. print "<a href=login2.php>zaloguj sie</a>";
  16. ?>


plik2
  1. <?php
  2. $team=htmlspecialchars ($_POST['nazwa_druzyny']);
  3. $ile=$_POST['ilosc'];
  4. $ilosc=$ile;
  5. $kto='kapitan';
  6. $kapitan=$_POST['kapitan'];
  7. print $kapitan;
  8. if ($ile>4) {
  9. print "<table border=1 cellpadding=10><tr><th>Skład</th><th>".$team."</th>";
  10. print "<form action = pot_dod.php method=POST>";
  11. print "<tr><td align=center colspan=2>Nick</td></tr>";
  12. print "<tr><td>Kapitan:</td><td><input type=text readonly=readonly value=".$kapitan."></td></tr>";
  13. $ile++;
  14. for ($i=2;$i<$ile;$i++) {
  15. print "<tr><td> Gracz ";
  16. print $a++;
  17. print "</td><td><input type=text name=gracz".$i."></td></tr>";
  18.  
  19. }
  20. print "<tr><td><input type=submit value=dalej></td></tr>";
  21.  
  22. } else {
  23. print "zbyt malo graczy aby zglosic zespol!";
  24.  
  25. }
  26. ?>


Tutaj rodzi sie moje pytanie.Jak przeslac do kolejnego pliku dane z formularza jezeli ilosc zawodnikow wpisywanych bedzie np.5.
I drugie pytanie jak to odebrac.Bo wypisywanie reczne tych danych w systemie
Kod
$_POST['gracz1']....
$_POST['gracz2']...

to syzyfowa praca, pozatym nigdy nie wiemy ilu zawodnikow wpisze autor.
Probowalem uzywac
  1. <?php
  2. for ($i=1, $i<ile; $i++) {
  3. $gracz=$_POST['gracz'"$i"];
  4. }
  5. ?>

Niestety nie dziala sad.gif

Dane odebrane z tych formularzy po ich zatwierdzeniu maja byc wpisane do bzy danych.

Prosze o pomoc smile.gif


-------------------------
do php używamy odpowiedniego BBCode
tym razem poprawiłem proszę pamiętać
korzystać w przyszłości
~Cienki1980
Go to the top of the page
+Quote Post
Cienki1980
post 19.04.2007, 07:01:35
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


Zamiast
  1. <?php
  2. print "</td><td><input type=text name=gracz".$i."></td></tr>";
  3.  
  4. // użyj takiego wpisu
  5.  
  6. print "</td><td><input type=text name=gracz[]></td></tr>";
  7. ?>

Otrzymasz tablicę $_POST['gracz'] a jej zawartość możesz odczytać w pętli np foreach. Żeby zobaczyć jaką postać ma ta tablicą zrób tak:
  1. <?php
  2. echo "<pre>";print_r($_POST['gracz']);echo "</pre>";
  3. ?>


--------------------
404
Go to the top of the page
+Quote Post
Crxiak
post 19.04.2007, 13:12:38
Post #3





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 18.04.2007

Ostrzeżenie: (0%)
-----


Dzieki za odpowiedz i za poprawe smile.gif
Ale mam pytanko.W kolejnym pliku odczytam ta tablice
  1. <?php
  2. $_POST['gracz']
  3. ?>
np 5 razy i bedzie zawierala zawsze te same dane.Bo bedziemyu zawsze odnosic sie do tego samego elemetu tablicy czyli w tym przypadku ['gracz'] a co z graczem 2,3,4 i cala reszta po koleji.Jak ja odczytac?
Czy cos zle rozumuje?Bo php dopiero rozgryzam. smile.gif
Go to the top of the page
+Quote Post
Cienki1980
post 19.04.2007, 13:14:42
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 590
Pomógł: 40
Dołączył: 11.01.2007
Skąd: Centrum

Ostrzeżenie: (0%)
-----


a sprawdzałeś co zwraca kod:
  1. <?php
  2. echo "<pre>";print_r($_POST['gracz']);echo "</pre>";
  3. ?>


w tej tablicy będziesz miał wszystkie dane ... $_POST['gracz'] to tablica, a nie jeden element.


--------------------
404
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 13:56