Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Dynamiczny formularz - upload do bazy
lutador
post
Post #1





Grupa: Zarejestrowani
Postów: 183
Pomógł: 3
Dołączył: 5.03.2007
Skąd: Opole

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


Witam,

w zaleznosci od wartosci zmiennej $zadan, wyswietla mi sie odpowiednia liczba input'ow. Teraz nie wiem jak napisac INSERT do bazy zeby wrzuci te dane do tabeli.. Tabela ma kolumny id_zad (auto increment), tresc_zad, termin_zad

  1. <form action="test.php" method="POST">
  2. <table width="400" border="0">
  3.  <tr>
  4.  <td>Nr zad.</td>
  5.  <td>Zadanie</td>
  6.  <td>Termin wykonania</td>
  7.  
  8. </tr>
  9.  <?
  10. $zadan = $_GET['zadanie'];
  11.  
  12.  for($index=0;$index<$zadan;$index++) {
  13. $zad = $index + 1;
  14. $termin = $index + 100;
  15.  
  16. echo " <tr>
  17. <td> $zad.  </td>
  18. <td><textarea name=\"$zad\" cols=\"25\" rows=\"\"></textarea></td>  
  19. <td valign=\"top\"><input type=\"text\" name=\"$termin\" size=\"9\" maxlength=\"10\"></td></tr> ";
  20. }
  21.  
  22. ?>
  23. <tr>
  24. <td><input type="submit" name="add" value="Wyslij zadania"></td>
  25. <td> </td>
  26. </tr>
  27. </form>
  28. </table>

dzieki za pomoc

pozdrawiam
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #2





Goście







Rozumiem, że każdy następny input to ma być nowy rekord, tak?
Go to the top of the page
+Quote Post
lutador
post
Post #3





Grupa: Zarejestrowani
Postów: 183
Pomógł: 3
Dołączył: 5.03.2007
Skąd: Opole

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


tak
Go to the top of the page
+Quote Post
-Wieviór-
post
Post #4





Goście







No to generalnie tak jak robiłem pętlę for dla wyświetlania kolejnych inputów, tak samo robisz pętlę for dla wstawiania rekordów do bazy. Najlepiej zrób tak:

Każdy kolejny input nazywaj kolejną liczbą: input_1, input_2, input_3.

Potem daj pętlę for opartą na $zadań, w środku dopisuj tekstowo zapytanie w zmiennej $sql.

Dopiero jak skończy się pętla, zrób mysql_query(), w ten sposób tylko raz będziesz ładował do bazy.
Go to the top of the page
+Quote Post
lutador
post
Post #5





Grupa: Zarejestrowani
Postów: 183
Pomógł: 3
Dołączył: 5.03.2007
Skąd: Opole

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


moglbys napisac jak bedzie wygladac mniej wiecej ta petla, bo nie umiem sobie z tym poradzic... :/
Go to the top of the page
+Quote Post
nowotny
post
Post #6





Grupa: Zarejestrowani
Postów: 875
Pomógł: 122
Dołączył: 2.02.2008

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


Ja bym to zrobił tak:
Najpierw trzeba trochę zmienić formularz:
  1. <td><textarea name=\"zadania[$zad][tekst]\" cols=\"25\" rows=\"6 \"></textarea></td>
  2. <td valign=\"top\"><input type=\"text\" name=\"zadania[$zad][termin]\" size=\"9\" maxlength=\"10\"></td></tr> ";


Potem przetwarzamy tablicę $_POST['zadania']:
  1. <?php
  2. $query='ISERT INTO `nazwa_tabeli` (`tresc_zad`, `termin_zad`) VALUES ';
  3. foreach($_POST['zadania'] as $zadanie){
  4. $query.='("'.$zadanie['tekst'].'","'.$zadanie['termin'].'"), ';
  5. }
  6. $query=substr($query,0,-1);
  7. mysql_query($query);
  8. ?>
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 - 18:00