Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz get i 1 zmienna...
rytek
post
Post #1





Grupa: Zarejestrowani
Postów: 63
Pomógł: 14
Dołączył: 21.01.2009
Skąd: Mszczonów

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


Witam!

Może moje pytanie będzie mocno "lamerskie", ale niestety nie wiem jak...

Mam sobie formularz:
  1. <?php
  2. <form name='inputform' method='get' action='$action'>
  3.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_crpg/> cRPG<br>
  4.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_dladzieci/> Dla Dzieci<br>
  5.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_familijne/> Familijne<br>
  6.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_gryakcji/> Gry Akcji<br>
  7.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_mmo/> MMO<br>
  8.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_logiczne/> Logiczne
  9.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_przygodowe/> Przygodowe<br>
  10.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_sportowe/> Sportowe<br>
  11.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_strategiczne/> Strategiczne<br>
  12.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_symulatory/> Symulatory<br>
  13.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_wyscigi/> Wyscigi<br>
  14.                      <input type='checkbox' name='gat'  value='1' $sel_gatunek_zrecznosciowe/> Zrecznosciowe
  15.                   <input type='submit' value='Filtruj' class='button'>
  16.                  </form>
  17. ?>


Chodzi mi o to, by wartości wysyłane były w 1 zmiennej, np, w przypadku wybrania 1 i 4 opcji zmienna gat przyjęła wartość: 10010000000.
Problem w tym, że nie wiem jak to zrobić... W tej chwili, za każdym zaznaczeniem tworzony jest nowy parametr gat=... itd.

Da się coś takiego w ogóle zrobić?


Proszę o pomoc.
Z góry dziękuję!
Go to the top of the page
+Quote Post
bartg
post
Post #2





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


Jedynym rozwiązaniem tutaj jest chyba JS.
Pobierz te inputy do tablicy, jesli zaznaczone to do stringu dodaj 1, jeśli nie to 0 i ci wyjdzie co chcesz. Potem wrzucasz to do input type="hidden" i w PHP odbierasz jak zwykły $_POST
Go to the top of the page
+Quote Post
ziqzaq
post
Post #3





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Możesz przesłać tablicę "gat" o tak:
  1. <input type="checkbox" name="gat[]" value="0" />
  2. <input type="checkbox" name="gat[]" value="1" />
  3. // ... itd.

Dostajesz tą tablicę przez post i jak chcesz stringa bez żadnych przerw to np. implode("",$_POST['gat']).

Edit: Po powyższym poście domyślam się że źle zrozumiałem pytanie, sry (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował ziqzaq 21.01.2009, 14:06:07
Go to the top of the page
+Quote Post
bartg
post
Post #4





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


ziqzaq, właśnie najpierw chciałem dać takie rozwiązanie. Jednak jak rozpoznac które zaznaczyłeś...

Mhh, a może się da?
  1. <input type="checkbox" name="gat[sport]" value="0" />
  2. <input type="checkbox" name="gat[dladzieci]" value="1" />

potem dajesz
  1. <?php
  2. if(isset($_POST['gat']['sport']))
  3. {
  4. echo 'Wybrano SPORT';
  5. }
  6. ?>

Odwołuje wcześniejszy post (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował bartg 21.01.2009, 14:41:53
Go to the top of the page
+Quote Post
ziqzaq
post
Post #5





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


~bartg fakt, dałem zły przykład.
Moc jest z tobą (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
rytek
post
Post #6





Grupa: Zarejestrowani
Postów: 63
Pomógł: 14
Dołączył: 21.01.2009
Skąd: Mszczonów

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


Dzięki za podpowiedzi, ale jest jeden problem: chciałbym, żeby formularz przesyłany był metodą get, dlatego, że parametr gat będzie używany w linkach na innych podstronach witryny, a chciałbym uniknąć zabawy z wysyłaniem z linku zmiennych metodą post... a co za tym idzie używania JS...
Myślałem nad tym, żeby skrypt reagował i na dane z $_POST (formularz) i na dane z zewnątrz (czyli z $_GET) i działa... ale to mnie nie usatysfakcjonowuje, bo to trochę "obejście problemu na około"...

PS. Wysłać tablicy w $_GET (chyba) się nie da, bynajmniej wyświetla się coś jak gat=Array...

Jakieś pomysły? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Z góry dzięki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

PS. Myślę ze trzeba napisać w JS skrypcik, który te dane formularza przerobi w 1 zmienna, tak jak chce i przypisać go do zdarzenia onsubmit w formularzu... ale z JS to jestem noga i niestety nie mam pojęcia jak się do tego zabrać...

Ten post edytował rytek 21.01.2009, 15:56:56
Go to the top of the page
+Quote Post
bartg
post
Post #7





Grupa: Zarejestrowani
Postów: 226
Pomógł: 25
Dołączył: 4.07.2007
Skąd: Berlin

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


Da się wysyłać tablice w GEt w identyczny sposób jak w POST:
  1. <form method="get" action="http://test.pl">
  2. <input type="text" name="test[aa]" />
  3. <input type="text" name="test[bb]" />
  4. <input type="text" name="test[cc]" />
  5. <input type="submit"/>
  6. </form>
Go to the top of the page
+Quote Post
erix
post
Post #8





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Chodzi mi o to, by wartości wysyłane były w 1 zmiennej, np, w przypadku wybrania 1 i 4 opcji zmienna gat przyjęła wartość: 10010000000.
Problem w tym, że nie wiem jak to zrobić... W tej chwili, za każdym zaznaczeniem tworzony jest nowy parametr gat=... itd.

Nie przejmuj się, wysyłaj via GET.

Ale podejrzewam, że jest to jakieś wyświetlanie kategorii/wyszukiwanie; nie lepiej byłoby w skrypcie docelowym obrobić tak, aby wsadzić wybór usera w sesję, a między stronami przekazywać tylko token szukania? Raz - może być łatwiej, dwa - użytkownik nie zmodyfikuje Ci danych.
Go to the top of the page
+Quote Post
rytek
post
Post #9





Grupa: Zarejestrowani
Postów: 63
Pomógł: 14
Dołączył: 21.01.2009
Skąd: Mszczonów

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


Dziękuję za pomoc (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
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: 20.12.2025 - 22:02