Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][html] Przeładowanie po SELECT
Forum PHP.pl > Forum > Przedszkole
netes
Witam.
Zrobiłem filtrowanie produktów wg określonych kryteriów, chciałbym jeszcze by można je było wybierać z pola SELECT.
Do SELECTa dane pobieram z bazy danych, ale nie mam pojęcia jak zrobić, by po wybraniu określonego kryterium strona automatycznie przeładowywała się z podanym kryterium (np. produkt.php?kat=2) gdzie "2" pochodziło by z SELECTa. Szukałem na forum, ale może jestem trochę zbyt leniwy, bo rozwiązania nie znalazłem. Jeśli takowe jest już gdzieś w postach proszę o link.

Pozdrawiam
remik09
Kod
<select name="nazwa">
<option onClick="this.form.action='?_tutaj_nazwa_akcji_formularza;this.form.submit()" value="wartosc">wartosc</option>
</select


a potem

  1. <?php
  2. $zmienna = $_POST['nazwa'];
  3. ?>


tu masz zapisana wartosc wybranej opcji
netes
Wielkie dzięki, pomogło smile.gif teraz już pięknie działa, poza jednym małym detalem - chciałbym jeszcze żeby po przeładowaniu automatycznie wybierane było w SELECT pole, które wybrał użytkownik. Wydaje mi się, że to drobnostka, ale nie mam sposobu winksmiley.jpg

W tej chwili wygląda to tak:
  1. <?php
  2. echo "<select name=\"WgSrednicy\">";
  3. while ($qSsh = mysql_fetch_array($qSdo))
  4.  {
  5.  echo "<option onClick=\"this.form.action='katalog.php?t=Srednica';this.form.submit()\" value=\"$qSsh[Srednica]\">
  6.  $qSsh[Srednica]
  7.  </option>";
  8.  }
  9.  echo "</select>";
  10. ?>
krzywy36
selected="selected" ;]
netes
@krzywy36

Wiem, że selected="selected", ale jak zrobić, by po przeładowaniu strony odpowiedni OPTION dostawał ten atrybut?
krzywy36
No chociażby robisz tak że po kliknieciu na jakiś option przekazujesz w adresie nazwe optiona, a potem w kazdym optionie piszesz
  1. <?php
  2. if($_GET['nazwa_optiona'] == '(tutaj nazwa optiona w ktorym to piszesz)')
  3. {
  4. echo 'selected="selected"';
  5. }
  6. ?>

i tak w każdym optionie smile.gif
nitek
jesli sie nie pomyslilem, to tak:

  1. <?php
  2. echo "<select name=\"WgSrednicy\">";
  3. while ($qSsh = mysql_fetch_array($qSdo))
  4.  {
  5.  echo "<option onClick=\"this.form.action='katalog.php?t=Srednica';this.form.submit()\" ";
  6.  if ($qSsh[Srednica]==$_POST['WgSrednicy']) echo "selected='selected'";
  7.  echo "value=\"$qSsh[Srednica]\">
  8.  $qSsh[Srednica]
  9.  </option>";
  10.  }
  11.  echo "</select>";
  12. ?>
netes
@nitek
Wielkie dzięki smile.gif działa jak należy.

EDIT:
Internet Explorer się jednak buntował (nie przeładowywał), ale poradziłem sobie przypisując akcję onchange do selecta, a nie onclick do optiona.

  1. <?php
  2. echo "<select onchange=\"this.form.action='katalog.php?t=$FiltrType';this.form.submit()\" name=\"$WgCzego\">\n";
  3. echo "<option value=\"all\">-</option>\n";
  4. while ($qSsh = mysql_fetch_array($qSdo))
  5. {
  6. echo "<option ";
  7. if ($qSsh[$FiltrType]==$_POST[$WgCzego]) echo "selected='selected'";
  8. echo "value=\"$qSsh[$FiltrType]\">$qSsh[$FiltrType]";
  9. if ($FiltrType == Srednica) echo "&quot;";
  10. echo "</option>\n";
  11. }
  12. echo "</select>";
  13. ?>
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.