Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] wysyłanie do bazy na podstawie chechbox
Forum PHP.pl > Forum > Przedszkole
borotix
Witam wszystkich,

Mam taki problem z formularzem, otóż formularz jest rozbity na kategorie, każda kategoria ma swój checkbox po zaznaczeniu którego dane z pół "input" mają zostać przesłane do bazy. Jeżeli zaznaczam checkboxy pojedynczo to jest ok, natomiast jeżeli zaznaczę dwa(lub więcej) chceboxy, to do bazy wysyła dane z ostatniej zaznaczonej kategorii.

Tak wygłąda formularz:

CODE
<form action="raport_en.php" method="post">

<!-- Kategoria 1 -->

<input type="checkbox" value="Kategoria1" name="Kategoria_1" />

<textarea name="k1_p1" class="text_ar">Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum</textarea>

<textarea name="k1_p2" class="text_ar">Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum</textarea>

<!-- Kategoria 2 -->

<input type="checkbox" value="Kategoria2" name="Kategoria_2" />

<textarea name="k2_p1" class="text_ar">Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum</textarea>

<textarea name="k2_p2" class="text_ar">Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum</textarea>


<input type="submit" value="Wygeneruj raport">

</form>


A tak wygląda funkcja odpowiedzialna za wysyłanie do bazy:

CODE
<?php

function kategorie_send() {

$kategoria1=$_POST['Kategoria_1'];

$kategoria2=$_POST['Kategoria_2'];

if (empty($_POST) === false && empty($kategoria1) === false) {
mysql_query("INSERT INTO kategorie (Kategoria_1) VALUES('$kategoria1')");

}

if (empty($_POST) === false && empty($kategoria2) === false) {
mysql_query("INSERT INTO kategorie (Kategoria_2) VALUES('$kategoria2')");

}
}



?>


Z góry dziękuje za pomoc!
bobo168
Przy wysyłaniu checkboxów w name wpiszuje name="tablica[]" potem po tej tablicy lecisz foreachem.
borotix
Dzięki za odpowiedź, nie jestem zbytnio ogarnięty w PHP, prosiłbym o przykład kodu.


Cytat(bobo168 @ 14.09.2012, 11:41:33 ) *
Przy wysyłaniu checkboxów w name wpiszuje name="tablica[]" potem po tej tablicy lecisz foreachem.

bobo168
  1. <form action="raport_en.php" method="post">
  2.  
  3. <!-- Kategoria 1 -->
  4.  
  5. <input type="checkbox" value="Kategoria1" name="Kategoria_1[]" />
  6.  
  7. <textarea name="k1_p1" class="text_ar">Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum</textarea>
  8.  
  9. <textarea name="k1_p2" class="text_ar">Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum</textarea>
  10.  
  11. <!-- Kategoria 2 -->
  12.  
  13. <input type="checkbox" value="Kategoria2" name="Kategoria_2[]" />
  14.  
  15. <textarea name="k2_p1" class="text_ar">Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum</textarea>
  16.  
  17. <textarea name="k2_p2" class="text_ar">Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum, Lorem ipsum</textarea>
  18.  
  19.  
  20. <input type="submit" value="Wygeneruj raport">
  21.  
  22. </form>


  1. function kategorie_send() {
  2.  
  3. $kategoria1=$_POST['Kategoria_1'];
  4.  
  5. $kategoria2=$_POST['Kategoria_2'];
  6.  
  7.  
  8.  
  9. if (empty($_POST) === false && empty($kategoria1) === false) {
  10. foreach($kategoria1 as $k1)
  11. mysql_query("INSERT INTO kategorie (Kategoria_1) VALUES('$k1')");
  12.  
  13. }
  14.  
  15. if (empty($_POST) === false && empty($kategoria2) === false) {
  16. // analogicznie to samo dla kategoria1
  17. mysql_query("INSERT INTO kategorie (Kategoria_2) VALUES('$kategoria2')");
  18.  
  19. }
  20. }
  21.  
  22.  
  23.  
  24. ?>
borotix
Niestety nie rozwiązało to problemu.
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.