Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Checkbox i input razem zapisywane do rekordu
mx500
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.05.2013

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


Witam wszystkich
Jestem dosyć świeża w php, jeśli tak można napisać.
Mam pewien problem, być może trywialny. Otóż mam aplikację, która wyświetla ankietę. Możliwe odpowiedzi pobieram z bazy danych i wyświetlam w postaci checkbox opis (dana odpowiedź). Z tym nie mam problemu.

Ale chciałabym zrobić coś takiego, że obok checkboxa z odpowiedzią, wyświetla się input, do którego można coś wpisać i razem z głosem wartość tego inputa jest zapisywana do bazy. Wyświetlanie inputa obok checkboxa to żaden problem, tylko nie wiem jak rozwiązać problem wspólnego zapisu, jak zrobić, żeby dany input był przyporządkowany do tego właśnie checkboxa i potem razem z oddanym głosem do jednego rekordu zapisany?

Zapis samych głosów, czyli zaznaczonych checkbox'ów mam:
  1. foreach($_POST['glos'] as $value){
  2. if (isset($_POST['glos']) && !empty($_POST['glos']))
  3. mysql_query("INSERT INTO `glosy` (id_glosu) VALUES ('$value')")
  4. or die('Błąd zapytania: '.mysql_error());
  5. }
  6. else
  7. {return false;}
  8. }



Pozdrawiam (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
-Andrzej.W.-
post
Post #2





Goście







A możesz wrzucić wynik
  1. var_dump($_POST);
z przykładowym zaznaczeniem checkboxa i jakimś tekstem w inpucie?
1. Dla 1 zaznaczonej opcji.
2. Dla dwóch zaznaczonych opcji(jeśli jest taka możliwość)

ogółem, przykładowe połaczenie:
  1. $a=$_POST['checkbox'].','.$_POST['input'];


Jako selektora użyłem przecinka, ale to może być np. średnik lub też spacja, lub inny znak, koniecznie pomiędzy apostrofami i kropka za 1 $_POST i przed drugim $_POST
Pozdrawiam.
Andrzej.

Ten post edytował Andrzej.W. 14.05.2013, 13:53:06
Go to the top of the page
+Quote Post
mx500
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.05.2013

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


Sorki nie miałam kiedy zajrzeć na forum.
Właśnie chodzi o to, że nie wiem jak się do tego zabrać, żeby ten input przekazywać razem z checkboxem.
Jeśli chodzi o checkboxa:
  1. echo "<input type=\"checkbox\" name=\"glos[]\" value=".$row['id']. ">".$row['dzien']."";


'id' to id rekordu, w którym umieściłam datę, czyli 'dzień'.
Wszystkie zaznaczone checkboxy wysyłam jako tablicę:
  1. foreach($_POST['glos'] as $value){
  2. if (isset($_POST['glos']) && !empty($_POST['glos']))
  3. {if($value == $_POST[''])
  4. mysql_query("INSERT INTO `glosy_dni` (id_dnia) VALUES ('$value')")
  5. or die('Błąd zapytania: '.mysql_error());
  6. }
  7. else
  8. {return false;}
  9. }


A chciałabym dodawać:
"INSERT INTO `glosy_dni` (id_dnia,kto) VALUES ('$value','$_POST['kto']')")
Go to the top of the page
+Quote Post
-Andrzej.W.-
post
Post #4





Goście







Nie wiem czy dobrze rozumiem, o co Ci chodzi.
Wg. mnie, taki układ formularzy, powinien załatwić sprawę,
  1. <form action="cos.php" method="post">
  2. 1. Które opcje wybierasz?<br>
  3. Opcja numer 1: <input type="checkbox" name="opcja[1][0]" value="zero" ><br>
  4. Opcja numer 2: <input type="checkbox" name="opcja[1][1]" value="jeden"><br>
  5. Uzasadnij swój wybór: <input type="text" name="pytanie[1]"><br>
  6.  
  7. 2. Które opcje wybierasz ?<br>
  8. Opcja numer 1: <input type="checkbox" name="opcja[2][0]" value="zero" ><br>
  9. Opcja numer 2: <input type="checkbox" name="opcja[2][1]" value="jeden"><br>
  10. Uzasadnij swój wybór: <input type="text" name="pytanie[2]">
  11. <input type="submit" value="wyślij">
  12. </form>



W tym przypadku każdy checkbox jest elementem tablicy odpowiednio
dla pyt 1
opcja[1][0]
opcja[1][1]
input tekstowy ma postac
pytanie[1]
  1. $zmienna_do_bazy=$opcja[1][0].'|'.$opcja[1][1].''.$pytanie[1];

To jest klucz do rozpracowania $_POST (IMG:style_emoticons/default/smile.gif)

Wówczas można to przerobić następująco:
  1.  
  2. for($i=1 ; $i<=count($_POST['opcja']) ; $i++)
  3. {
  4. $zmienna_do_bazy=$_POST['opcja'][$i][0].'|'.$_POST['opcja'][$i][1].'|'.$_POST['pytanie'][$i];
  5. echo $zmienna_do_bazy.'<br>';
  6. }


Co do filtrowania tego i warunkowania, to już musisz pokombinować.(IMG:style_emoticons/default/smile.gif)
Pozdrawiam.
Andrzej.

Ten post edytował Andrzej.W. 17.05.2013, 05:10:26
Go to the top of the page
+Quote Post
mx500
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.05.2013

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


A dziękuję na pewno coś mi to pomoże!
Go to the top of the page
+Quote Post
-Andrzej.W.-
post
Post #6





Goście







Ja myślę! (IMG:style_emoticons/default/smile.gif) , kiedyś jak przeglądałem tutoriale html, czytałem wywód o checkbox, dość rozległy, ale dopiero jak przeczytałem o Twoim problemie znalazłem zastosowanie, zatem pierwszy raz użyłem tablic w "name" inputa. owyższy kod działa, sprawdzone, kwestia dostosowania do potrzeb tylko. (IMG:style_emoticons/default/smile.gif)

źródło inspiracji

Ten post edytował Andrzej.W. 18.05.2013, 09:16:22
Go to the top of the page
+Quote Post
mx500
post
Post #7





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 12.05.2013

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


Tzn. jeśli chodzi o zastosowanie tablic w name, już to wypróbowałam jakiś czas temu, ale z tymi kluczami trochę mam problem (zapewne nie do końca to rozumiem i muszę nad tym porozmyślać (IMG:style_emoticons/default/wink.gif) )
Przeanalizuję jeszcze raz co mi napisałeś i spróbuję rozwiązać swój problem.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 12:05