Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularz get i 1 zmienna...
Forum PHP.pl > Forum > PHP
rytek
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ę!
bartg
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
ziqzaq
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
bartg
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
ziqzaq
~bartg fakt, dałem zły przykład.
Moc jest z tobą winksmiley.jpg
rytek
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ć...
bartg
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>
erix
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.
rytek
Dziękuję za pomoc smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.