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
Puszy
post
Post #2





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


W takim razie dorzuciłem tablicę Twoich wartości, co najlepsze nie musisz podawać ilości checkboxów, wystarczy że wypełnisz tablicę. Dodatkowo bezpieczniej jest przerzucić JS na PHP czyli wygenerować HTML z poziomu PHP, nie wiem dlaczego zrobiłem to w JS o.O

W zależności ile podasz tekstów w tablicy ta_defaults tyle checkboxów się pojawi, jeżeli chces zjakiś <textarea> mieć pusty, wstaw pusty string.

  1. <script type="text/javascript">
  2.  
  3. var ta_defaults = new Array('abc', 'qwe', 'sdsd');
  4.  
  5. var name_prefix = 'opinie';
  6. var checkboxex_qty = ta_defaults.length;
  7.  
  8. $(document).ready(function(){
  9.  
  10. for(i=0;i<checkboxex_qty;i++){
  11. var html = '<input name="cb_' + name_prefix + '_' + i + '" type="checkbox" /><textarea name="ta_' + name_prefix + '_' + i + '">' + ta_defaults[i] + '</textarea><br />';
  12.  
  13. $('#multi_cb').append(html);
  14. }
  15.  
  16. $('#multi_cb').append('<input type="hidden" name="qty" value="' + checkboxex_qty + '" />');
  17. $('#multi_cb').append('<input type="hidden" name="prefix" value="' + name_prefix + '" />');
  18.  
  19. });
  20.  
Go to the top of the page
+Quote Post
pela222
post
Post #3





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

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


Cytat(Puszy @ 2.10.2014, 15:33:42 ) *
  1. <script type="text/javascript">
  2. var ta_defaults = new Array('abc', 'qwe', 'sdsd');


Powiedz mi jeszcze jak mam takie coś rozwiązać dla zmiennej ta_defaults.

  1. //mieszkasz
  2. if ($type == "single") {
  3. echo '<p><input type="checkbox" name="check1[]" checked="checked" value="Mieszkasz w '.$town.', '.$county.' pod adresem '.$area.'. "> Mieszkasz w '.$town.', Co. '.$county.' pod adresem '.$area.'.</p>';
  4. }
  5. elseif ($type == 'dual') {
  6. echo '<p><input type="checkbox" name="check1[]" checked="checked" value="Mieszkacie w '.$town.', '.$county.' pod adresem '.$area.'. "> Mieszkacie w '.$town.', Co. '.$county.' pod adresem '.$area.'.</p>';
  7. }


Czyli jak wprowadzić warunek że np. Zdanie pierwsze jest "abc" gdy zmienna $type == 'single' ale "ABC" gdy zmeinna $type == 'dual'

EDIT --- Resolved
mam teraz takie coś i działa ;-) wiec chyba sam sobie odpowiedziałem na pytanie pierwsze (chyba że jest jakiś bład lub lepszy sposób to czekam na info):
  1. var type = 1;
  2. var zm1 = ' Ryszard ';
  3. var ch1 = (type == 1) ? "Tutaj jestem:" + zm1 + "koniec." : "a tutaj mnie nie ma:" +zm1+ "koniec.";
  4. var ta_defaults = [ch1,
  5. 'abc',
  6. 'qwe',
  7. 'sdsd'];

czyli że jak zastąpie var type = 1; takim czymś var type = "<?php echo $type; ?>"; to pewnie bedzie git
----
EDIT
I na koniec jeszcze jedno lamerskie pytanie. Do tej pory wyświetlałem moje zmienne poprzez:
$str = implode($check);
echo $str;

A jak to bedzie teraz? To znaczy wyświetl te <textarea> dla których sent = 1 ?
-----
EDIT --- Resolved :-)
No to jeszcze na koniec jeszcze jedno pytanko:
Czy nie moge tego zrealizować w całości w php zamiast z wykorzystaniem js?

no to chyba z tym też sobie poradziłem :-)
  1. <form method="POST" action="checkbx.php">
  2. <?php
  3. $type = "single";
  4. $zm1 = ' Ryszard ';
  5. //$ch1 = ($type == single) ? "Tutaj jestem:" .$zm1. "koniec." : "a tutaj mnie nie ma:" .$zm1. "koniec.";
  6. if ($type == single) {$ch1 = 'abc' .$zm1. 'a tutaj leci dalej';} else {$ch1 = 'asdf' .$zm1. 'i koniec.';};
  7.  
  8. $ta_defaults = array($ch1,
  9. 'abc',
  10. 'qwe',
  11. 'sdsd');
  12.  
  13. $name_prefix = 'opinie';
  14. $checkboxex_qty = count($ta_defaults);
  15. //echo $checkboxex_qty;
  16.  
  17. for($i=0;$i<$checkboxex_qty;$i++){
  18. echo '<input name="cb_'.$name_prefix.'_'.$i.'" type="checkbox" /><textarea name="ta_'.$name_prefix.'_'.$i.'">'.$ta_defaults[$i].'</textarea><br />';
  19. }
  20. echo '<input type="hidden" name="qty" value="'.$checkboxex_qty.'" />';
  21. echo '<input type="hidden" name="prefix" value="'.$name_prefix.'" />';
  22. ?>
  23. <input type="submit" value="przeslij" />
  24. </form>


Ten post edytował pela222 3.10.2014, 00:21:18
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 14:15