Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML]Wartość checkbox'ów na podstawie textarea
pela222
post
Post #1





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 17.04.2013

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


Pytanie dotyczy modyfikacji mojego formularza.
W tej chwili moje checkbox'y w formularzu wygladają tak:
  1. <p><input type="checkbox" name="check[]" value=" przykłądowy tekst z wartością">- przykłądowy tekst z wartością
  2. <p><input type="checkbox" name="check[]" value=" przykłądowy tekst z wartością nr2 ">- przykłądowy tekst z wartością nr2 </p>
  3. <p><input type="checkbox" name="check[]" value=" przykłądowy tekst z wartością nr3 ">- przykłądowy tekst z wartością nr3 </p>
  4. oraz mam dodatkowo jeszcze podkoniec sekcji jeden textarea:
  5. <p><textarea name="check[]"></textarea></p>

Chciałbym jednak dla części z checkbox uzyskać zwiększoną funkcjonalność. Chodzi o to. żeby użytkownik formularza mógł zmodyfikować domyślną wartość tego checkboxa "przykłądowy tekst z wartością" na inną.

Czyli chciałbym przesyłać wartość pola textarea, jeżeli odpowiadający mu checkbox został zaznaczony (przesłąć textarea jako wartość checkbox).

  1. <p><input type="checkbox" name="check[]"></p>
  2. <p><textarea name="textcheck[]" >przykłądowy tekst z wartością</textarea></p>
  3. <p><input type="checkbox" name="check[]"></p>
  4. <p><textarea name="textcheck[]" >przykłądowy tekst z wartością nr2</textarea></p>


Założenia:
1) Chciałbym, aby powiązane pary checkbox - textarea znalazły się w tablicy check[], aby uniknąć nadawania każdemy z checkboxów innej nazwy i niepotrzebnego zwielokrotnienia liczby danych przesyłąnych z formularza. Jeżeli nazwa musi być indywidualna dla kazdego checkbox to jak wstawić zaznaczone checkboxy do tabeli check[] przed wysłaniem danych z formularza.

Rozumiem że pary checkbox - textarea powinny być powiązane jakimś id (IMG:style_emoticons/default/questionmark.gif) ? aby stworzyć powiązanie tych dwóch elementów (IMG:style_emoticons/default/questionmark.gif)

Proszę o podpowiedź jak to zrealizować.
Dziekuję
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
pela222
post
Post #2





Grupa: Zarejestrowani
Postów: 85
Pomógł: 0
Dołączył: 17.04.2013

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


Dzięki za kolejną wskazówkę.

Na koniec (chyba już ostatnie pytanie).

Czy jak chcę użyc tablicy 2 krotnie (chcę mieć 2 zestawy zmiennych) to należy to zrobić w taki sposób?
  1. <form method="POST" action="checkbx.php">
  2. <?php
  3. $ch1 = 'Ryszard';
  4. //itd dla kolejnych $ch do 99
  5. $ch100 = 'Krystyna';
  6. //itd dla kolejnych $ch do 199
  7. ?>
  8.  
  9. <?php
  10. //TABLICA CHECKBOXOW SEKCJA 1
  11. $ta_defaults = array($ch1,$ch2,'Uwagi');
  12. $name_prefix = 'opinie';
  13. $checkboxex_qty = count($ta_defaults);
  14. //PETLA
  15. for($i=0;$i<$checkboxex_qty;$i++){
  16. echo '<input name="cb_'.$name_prefix.'_'.$i.'" type="checkbox" /><textarea name="ta_'.$name_prefix.'_'.$i.'">'.$ta_defaults[$i].'</textarea><br />';
  17. }
  18. echo '<input type="hidden" name="qty" value="'.$checkboxex_qty.'" />';
  19. echo '<input type="hidden" name="prefix" value="'.$name_prefix.'" />';
  20. ?>
  21.  
  22. <?php
  23. //TABLICA CHECKBOXOW SEKCJA 2
  24. $ta_defaults2 = array($ch100,$ch101,$ch102,$ch103,'Uwagi2');
  25. $name_prefix2 = 'opinie2';
  26. $checkboxex_qty2 = count($ta_defaults2);
  27. //PETLA
  28. for($i=0;$i<$checkboxex_qty2;$i++){
  29. echo '<input name="cb2_'.$name_prefix2.'_'.$i.'" type="checkbox" /><textarea name="ta2_'.$name_prefix2.'_'.$i.'">'.$ta_defaults2[$i].'</textarea><br />';
  30. }
  31. echo '<input type="hidden" name="qty2" value="'.$checkboxex_qty2.'" />';
  32. echo '<input type="hidden" name="prefix2" value="'.$name_prefix2.'" />';
  33. ?>
  34. <input type="submit" value="przeslij" />
  35. </form>


a plik z rezultatami będzie wygladał tak:

  1. <?php
  2. //Pierwszy zestaw
  3. for($i=0;$i<$_POST['qty'];$i++){
  4. if(isset($_POST['cb_'.$_POST['prefix'].'_'.$i])){
  5. $checkboxes[$i] = array(
  6. 'sent' => true,
  7. 'text' => $_POST['ta_'.$_POST['prefix'].'_'.$i]
  8. );
  9. }else{
  10. $checkboxes[$i] = array(
  11. 'sent' => false,
  12. 'text' => $_POST['ta_'.$_POST['prefix'].'_'.$i]
  13. );
  14. }
  15. }
  16. //print_r ($checkboxes);
  17.  
  18. foreach($checkboxes as $index => $checkbox){
  19. if($checkbox['sent']){
  20. // akcja gdy checkbox zostal zaznaczony
  21. $list = $checkbox['text']. '<br/>';
  22. $string = $checkbox['text']. ' ';
  23. echo $list;
  24. //echo $string;
  25. }else{
  26. // akcja gdy checkbox nie zostal zaznaczony
  27. }
  28. }
  29. //drugi zestaw
  30. for($i=0;$i<$_POST['qty2'];$i++){
  31. if(isset($_POST['cb2_'.$_POST['prefix2'].'_'.$i])){
  32. $checkboxes2[$i] = array(
  33. 'sent' => true,
  34. 'text' => $_POST['ta2_'.$_POST['prefix2'].'_'.$i]
  35. );
  36. }else{
  37. $checkboxes2[$i] = array(
  38. 'sent' => false,
  39. 'text' => $_POST['ta2_'.$_POST['prefix2'].'_'.$i]
  40. );
  41. }
  42. }
  43. //print_r ($checkboxes2);
  44.  
  45. foreach($checkboxes2 as $index2 => $checkbox2){
  46. if($checkbox2['sent']){
  47. // akcja gdy checkbox zostal zaznaczony
  48. $list2 = $checkbox2['text']. '<br/>';
  49. $string2 = $checkbox2['text']. ' ';
  50. echo $list2;
  51. //echo $string2;
  52. }else{
  53. // akcja gdy checkbox nie zostal zaznaczony
  54. }
  55. }
  56.  
  57. ?>



Czy istnieje jakieś porostsze rozwiązanie. Jako efert ostateczny czcę otrzymać 2 zestawy zmiennych $list i $list2. ...
chyba że można puścić to raz (jedna tablica) i na końcu rozdzielić na 2 tablice...??dla przykładu pierwszy zestaw od $ch1 do $ch99, drugi od $ch100 do $ch199 itd.

Piszę 2 choć tak naprawdę potrzebuję 4, no ale zasada działania taka sama.:-)

Ten post edytował pela222 3.10.2014, 16:59:22
Go to the top of the page
+Quote Post

Posty w temacie
- pela222   [HTML]Wartość checkbox'ów na podstawie textarea   2.10.2014, 12:54:37
- - Puszy   Nie wiem czy o to Ci chodzi ale naskrobałem coś ta...   2.10.2014, 14:21:26
- - pela222   Super to napisałeś tylko, że ja potrzebuje podać d...   2.10.2014, 15:22:21
- - Puszy   W takim razie dorzuciłem tablicę Twoich wartości, ...   2.10.2014, 15:33:42
|- - pela222   Cytat(Puszy @ 2.10.2014, 15:33:42 ) [...   2.10.2014, 16:07:23
- - Puszy   Nie wiem do końca o co chodzi z tym Ryszardem, wię...   3.10.2014, 08:53:01
- - pela222   No i o to chodziło mistrzu ;-) Ryszard to tylko pr...   3.10.2014, 09:32:48
- - Puszy   Nie musisz łączyć stringów w nawiasach i nie ma ta...   3.10.2014, 09:49:08
- - pela222   Dzięki za kolejną wskazówkę. Na koniec (chyba już...   3.10.2014, 16:51:15
- - Puszy   Wrzuć to sobie w funkcję, stwórz jakąś klasę. Poda...   7.10.2014, 15:21:45
- - pela222   @Puszy Strasznie doceniam twoj czas i pomoc... nie...   7.10.2014, 19:03:42
- - Puszy   [PHP] pobierz, plaintext echo '<input type=...   10.10.2014, 09:25:59
- - pela222   To co robisz to jest dla mnie inna liga... Powiem ...   10.10.2014, 09:47:59
- - Puszy   W którym miejscu uzywasz var_dump? Jeżeli w funkc...   10.10.2014, 10:36:35
- - pela222   [PHP] pobierz, plaintext function getFormData...   10.10.2014, 11:05:24
- - Puszy   I tak i nie, funkcja działa poprawnie, ale widoczn...   10.10.2014, 11:34:39
- - pela222   Już rozumiem dlaczego nie wyświetlało mi struktury...   10.10.2014, 13:14:57
- - Puszy   Znowu podajesz jako parametr zmienną która nie ist...   10.10.2014, 13:29:25
- - pela222   Ok...mam to :-) Na koniec jeszcze raz super dzięku...   10.10.2014, 13:43:31
- - Puszy   Nie ma problemu. Nie jestem specjalistą. Jakbyś sz...   10.10.2014, 13:46:34
- - pela222   W moim przypadku zastosowanie polega na tym, że uż...   15.10.2014, 10:31:50
- - Puszy   Jeżeli potrzebujesz trzech tablic zamiast jednej w...   15.10.2014, 14:28:59
- - pela222   Tak jak pisałem kiedyś. Potrzebuje zmienne $t...   15.10.2014, 14:35:00
- - Puszy   No to w czym problem. $tablica_wielowymiarow...   15.10.2014, 15:34:50
- - pela222   No tak ale: [PHP] pobierz, plaintext function getC...   15.10.2014, 15:58:05
- - Puszy   W fanej tablicy na jednym poziomie nie możesz mieć...   15.10.2014, 23:05:25
- - pela222   Ja nie potrzebuję nic innego niż: $qwer = arr...   17.10.2014, 16:21:06
- - Puszy   Nie potrzebujesz dwóch funkcji które robią to samo...   20.10.2014, 14:56:53


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: 16.10.2025 - 10:41