Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wiele pol tekstowych i zapis do pliku
dublinka
post
Post #1





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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.


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
toaspzoo
post
Post #2





Grupa: Zarejestrowani
Postów: 778
Pomógł: 84
Dołączył: 29.07.2010
Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury.

Ostrzeżenie: (20%)
X----


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]


--------------------

LS Easter egg <
Go to the top of the page
+Quote Post
dublinka
post
Post #3





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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?

Ten post edytował dublinka 24.02.2013, 19:03:25


--------------------
Go to the top of the page
+Quote Post
LeNy
post
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 17.01.2009

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


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. }


Ten post edytował LeNy 24.02.2013, 20:12:51
Go to the top of the page
+Quote Post
dublinka
post
Post #5





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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

Ten post edytował dublinka 24.02.2013, 20:14:08


--------------------
Go to the top of the page
+Quote Post
LeNy
post
Post #6





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 17.01.2009

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


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. ?>
Go to the top of the page
+Quote Post
dublinka
post
Post #7





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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

Ten post edytował dublinka 24.02.2013, 20:49:34


--------------------
Go to the top of the page
+Quote Post
LeNy
post
Post #8





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 17.01.2009

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


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. ?>


Ten post edytował LeNy 24.02.2013, 20:54:05
Go to the top of the page
+Quote Post
dublinka
post
Post #9





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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.

Ten post edytował dublinka 24.02.2013, 21:14:42


--------------------
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 Aktualny czas: 21.08.2025 - 13:33