Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Formularz get i 1 zmienna...
rytek
post 21.01.2009, 11:24:38
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 21.01.2009, 14:03:51
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 21.01.2009, 14:04:19
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 smile.gif

Ten post edytował ziqzaq 21.01.2009, 14:06:07
Go to the top of the page
+Quote Post
bartg
post 21.01.2009, 14:41:26
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 smile.gif

Ten post edytował bartg 21.01.2009, 14:41:53


--------------------
Go to the top of the page
+Quote Post
ziqzaq
post 21.01.2009, 15:20:04
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ą winksmiley.jpg
Go to the top of the page
+Quote Post
rytek
post 21.01.2009, 15:53:25
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? smile.gif

Z góry dzięki 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 21.01.2009, 16:43:36
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 21.01.2009, 16:46:08
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.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
rytek
post 21.01.2009, 19:26:57
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 smile.gif
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 6.06.2024 - 07:20