Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wiele pol tekstowych i zapis do pliku
Forum PHP.pl > Forum > PHP
dublinka
Generuje wiele pol tekstowych petla i potrzebuje to zapisac do pliku linia po linii poniewaz jedna 'linia' formularza sklada sie z 4 pol.
  1. <div align="center">
  2. <table border="1" width="800" height="179">
  3. <tr>
  4. <td height="60" width="800" align="center" colspan="4">costam</td>
  5. </tr>
  6. <tr><td height="46" width="370" align="center">Name</td>
  7. <td height="46" width="370" align="center">Surname</td>
  8. <td height="46" width="370" align="center">Phone</td>
  9. <td height="46" width="370" align="center">Orgin</td></tr>
  10. <?
  11. for($i=1;$i<=$_POST['wybor1'];$i++)
  12. {
  13. print "<tr><td height=\"46\" width=\"370\" align=\"center\">".$i." <input TYPE=\"text\" name=\"name[]\" maxlength=\"10\"></td>";
  14. print "<td height=\"46\" width=\"370\" align=\"center\"><input TYPE=\"text\" name=\"surname[]\" maxlength=\"10\"></td>";
  15. print "<td height=\"46\" width=\"370\" align=\"center\"><input TYPE=\"text\" name=\"phone[]\" maxlength=\"10\"></td>";
  16. print "<td height=\"46\" width=\"370\" align=\"center\"><input TYPE=\"text\" name=\"orgin[]\" maxlength=\"10\"></td></tr>";
  17. }
  18.  
  19. ?>
  20.  
  21. <tr>
  22. <td height="50" width="800" colspan="4" align="center"><center><input TYPE="submit" value="==== NEXT STEP ===="></center></td>
  23. </tr>
  24. </table>
  25. </div></form>


  1. $_POST['wybor1'] // to poslana z formularza liczba - np. 10


Iteraz mam 10 linni po 4 kazda.

Jak to zapisac linia po linii czyli:

imie||nazwisko||phone||kraj
imie2||nazwisko2||phone2||kraj2

Nigdy nie wiadomo ile tych linii bedzie.
toaspzoo
1. zlicz ilośc pól: count($_POST['name'])
2. pętla, może być for for($i=0;$i<count($_POST['name']); $i++) { ...
3. odwołanie (w pętli): echo $_POST['name'][$i]
dublinka
Cytat(toaspzoo @ 24.02.2013, 18:49:18 ) *
1. zlicz ilośc pól: count($_POST['name'])
2. pętla, może być for for($i=0;$i<count($_POST['name']); $i++) { ...
3. odwołanie (w pętli): echo $_POST['name'][$i]

Wyswietlic to ja wiem tylko jak to zapisac.
Problem moze byc wiekszy poniewaz mam jeszcze kilka pol hidden [ktore wczesniej sa przekazane] i musze dolaczyc do tego wlasnie czyli trzebaby pobrac i dolaczyc i potem zapisac.

Po drugie sa 4 pola wiec 4 osobne petle questionmark.gif?
LeNy
Moim zdaniem lepiej użyć pętli foreach:

przykład input:
  1. <input type="text" name="nazwa[]" />
  2. <input type="text" name="nazwa[]" />
  3. <input type="text" name="nazwa[]" />


  1. foreach ($_POST["nazwa"] as $value)
  2. {
  3. echo $value;
  4. }
dublinka
Cytat(LeNy @ 24.02.2013, 20:12:33 ) *
Moim zdaniem lepiej użyć pętli foreach:

przykład input:
  1. <input type="text" name="nazwa[]" />
  2. <input type="text" name="nazwa[]" />
  3. <input type="text" name="nazwa[]" />


  1. foreach ($_POST["nazwa"] as $value)
  2. {
  3. echo $value;
  4. }
tylko ze ja mam nie tylko jedno pole. Jest ich 4 o roznych nazwach
LeNy
Robiłem na szybko ale działa


  1. <form action="" method="POST">
  2. // tutaj zapętlisz sobie to ile razy chcesz
  3. <input TYPE="text" name="name" maxlength="10">
  4. <input TYPE="text" name="surname" maxlength="10">
  5. <input TYPE="text" name="phone" maxlength="10">
  6. <input TYPE="text" name="orgin" maxlength="10">
  7.  
  8. <input name="submit" type="submit" value="test" />
  9. </form>


  1. <?PHP
  2.  
  3. if(isset($_POST['submit']))
  4. {
  5. foreach($_POST as $type => $value)
  6. {
  7. $result = NULL;
  8. if($type != 'submit')
  9. {
  10. $result .= $value.'||';
  11. }
  12. echo $result; // tutaj robisz zapis do nowej lini
  13. }
  14.  
  15. }
  16.  
  17. ?>
dublinka
Cytat(LeNy @ 24.02.2013, 20:29:03 ) *
Robiłem na szybko ale działa


  1. <form action="" method="POST">
  2. // tutaj zapętlisz sobie to ile razy chcesz
  3. <input TYPE="text" name="name" maxlength="10">
  4. <input TYPE="text" name="surname" maxlength="10">
  5. <input TYPE="text" name="phone" maxlength="10">
  6. <input TYPE="text" name="orgin" maxlength="10">
  7.  
  8. <input name="submit" type="submit" value="test" />
  9. </form>


  1. <?PHP
  2.  
  3. if(isset($_POST['submit']))
  4. {
  5. foreach($_POST as $type => $value)
  6. {
  7. $result = NULL;
  8. if($type != 'submit')
  9. {
  10. $result .= $value.'||';
  11. }
  12. echo $result; // tutaj robisz zapis do nowej lini
  13. }
  14.  
  15. }
  16.  
  17. ?>


Dzialc dziala ale nie o to mi chodzilo do konca bo mi wszystkie tablice POST pobiera ale nie chce wszystkich i ciezko mi to obrabiac.

Da sie to jakos pobrac tak wiesz, linia po linii i obrabiac ?

edit. Chociaz nie, to nie dziala nawet jakby. Pobiera mi dane z pol hidden ale z tych co generuje to zwraca jakos dziwnie jakby losowo ostatnie tylko.

Generalnie szukam innego rozwiazania.Nie wiem jak sie dobrac do tych tablic zeby je pobrac i obrobic
LeNy
Sprawdziłem u sb i działa. Może trochę zbyt prymitywny sposób, ale wg. mnie lepszy od 4 pętli dla każdych pól input.

  1. <form action="" method="POST">
  2. // tutaj robisz pętle
  3. <input TYPE="text" name="name[]" maxlength="10">
  4. <input TYPE="text" name="name[]" maxlength="10">
  5. <input TYPE="text" name="name[]" maxlength="10">
  6. <input TYPE="text" name="name[]" maxlength="10">
  7. // zamykasz petle
  8. <input name="submit" type="submit" value="test" />
  9. </form>


  1. <?PHP
  2. if(isset($_POST['submit']))
  3. {
  4. $count = NULL;
  5. foreach($_POST['name'] as $value)
  6. {
  7. $result .= $value.'||';
  8. $count++;
  9. if($count == 4)
  10. {
  11. $count = NULL;
  12. echo $result; // tutaj robisz zapis do nowej lini
  13. $result = '';
  14. }
  15. }
  16. }
  17. ?>
dublinka
Zrobilem. Chociaz swoja droga nie wiem dlaczego nie wpadlem na to wczesniej biggrin.gif

  1. for($b=0;$b<$_POST['razy'];$b++)
  2. {
  3.  
  4. print $_POST['pierwsze14a'].'||'.$_POST['name'][$b].'||'.$_POST['surname'][$b].'||'.$_POST['phone'][$b].'||'.$_POST['orgin'][$b]."<br>";
  5.  
  6. }


w tne sposob moge sobie obraviac jak chce.Dzieki za sugestie i pozdro.
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.