Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] Prosty filtr
Forum PHP.pl > Forum > Przedszkole
kbilski
Witam

Mam problem z wyciągnięciem danych poprzez filtr

Na stronie http://www.siecioowo.pl/selector.php po wybraniu z listy kategorii "access point" i zaznaczeniu checkboxa "porty 2" powinno się wyświetlić tylko urządzenie z dwoma portami, analogicznie po zaznaczeniu "porty 4"- urządzenie z 4 portami. Po zaznaczeniu obu checkboxów powinny pokazać się oba urządzenia.


Kod
<form action="" method="post">
<select name="kategoria" onchange="this.form.submit()">
<option value="">Wybierz Rodzaj Urządzenia</option>
<option value="kamery">Kamery</option>
<option value="accesspoint">Access Point</option>
<option value="switche">Switche</option>
</select>
</form>


<?php
$serwer = "";  // nazwa serwera mysql
$login  = "";  // login do bazy
$haslo  = "";  // haslo do bazy
$baza   = "";  // nazwa bazy
$tabela = "produkty";  // nazwa tabeli

$kategoria = $_POST['kategoria'];

if($kategoria) {
    
    // łączymy się z bazą danych
    if (mysql_connect($serwer, $login, $haslo) and mysql_select_db($baza)) {
        
        // zapytanie do bazy danych
        $wynik = mysql_query("SELECT * FROM produkty WHERE kategoria='$kategoria'")
        or die("Błąd w zapytaniu!");
        
        mysql_close();
    }
    else echo "Nie mogę połączyć się z bazą danych!";
    
    // wyświetlany wyniki zapytania
  
echo "<table cellpadding=\"2\" border=1>";
    while($rek = mysql_fetch_array($wynik)) {



echo "<tr>";
        echo "<td>".$rek['img_src']."</td>";
        echo "<td>".$rek['nazwa_produktu']."</td>";
        echo "<td>".$rek['porty']."</td>";
        
        echo "</tr>";
    }
    echo "</table>";
}

$box=$_POST['box'];

while (list ($key,$val) = @each ($box)) {
echo "$val,";
}

echo "<form method=post action=''>";
echo "<table border='0' cellspacing='0' style='border-collapse: collapse' width='100' >
<tr bgcolor='#ffffff'>
<td width='25%'><input type=checkbox name=box[] value='?'></td>
<td width='25%'> Porty: 2</td>
<td width='25%'><input type=checkbox name=box[] value='?'></td>
<td width='25%'> Porty: 4</td>
<tr><td colspan =6 align=center><input type=submit value=Select></form></td></tr>
</table>";
?>


Nigdzie nie mogę znaleźć gotowego przykładu żeby to ogarnąć..
Coś należy wrzucić do value ?


Jakieś pomysły? Wskazówki?

Ponawiam, czy w dobrym kierunku idę? Czy coś innego trzeba zrobić?
zend
  1. <input type="checkbox" checked="checkde" name="xxx" />


  1. echo '<pre>';
  2. print_r($_POST);
  3. echo '</pre>';
  4.  
  5. echo "<option value='xxx' " . ((isset($_POST['kategoria']) AND $_POST['kategoria'] == 'xxx' ) ? 'selected' : '') . '>Kategoria</option>';
  6.  
kbilski
Troche to zmieniłem bo w wersji orginalnej wywalało błąd..( jak tylko coś było w " " to błąd parsowania...ale teraz równolegle do wybranej pozycji z listy wyświetla kategorie ale nadal nie filtruje. Bo wybraniu checkboxa w ogóle dziwne rzeczy się dzieją..http://www.siecioowo.pl./selector.php

Kod
  $box=$_POST['box'];

while (list ($key,$val) = @each ($box)) {
echo "$val,";
}
echo '<pre>';
print_r($_POST);
echo '</pre>';

echo "<option value='xxx' " . ((isset($_POST['kategoria']) AND $_POST['kategoria'] == 'xxx' ) ? 'selected' : '');
echo "<option value='xxx2' " . ((isset($_POST['kategoria']) AND $_POST['kategoria'] == 'xxx2' ) ? 'selected' : '');

echo "<form method=post action=''>";
echo "<table border='0' cellspacing='0' style='border-collapse: collapse' width='100' >
<tr bgcolor='#ffffff'>
<td width='25%'><input type=checkbox checked=checked name=xxx></td>
<td width='25%'>&nbsp;Porty: 2</td>
<td width='25%'><input type=checkbox checked=checked name=xxx2></td>
<td width='25%'>&nbsp;Porty: 4</td>
<tr><td colspan =6 align=center><input type=submit value=Select></form></td></tr>
</table>";
?>
zend
To nie był gotowiec tylko przykład jak postąpić smile.gif Twój problem polega na tym że wysyłasz dane dwoma formularzami. Jak wysyłasz jeden, to nie masz danych z drugiego i vice versa. Jak złączysz te formularze w jeden i skorzystasz z kodu który Ci podałem (wstawiając go w dobre miejsca), to wszystko będzie działać tak jak chcesz. Spróbuj to rozwiązać sam, jak coś nie wyjdzie to podziel się kodem to poprawie
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.