Ricerca per filtri (o Motore a strati)
Ho guardato molte pagine del forum ma non ho trovato un argomento simile.
In pratica mi servirebbe una ricerca per filtri.
Cioè un motore che prendendo da dei menu a tendina dei valori li cerchi in un file di testo.
Perchè un file di testo? Perchè ciò che sto scrivendo non ha un database per i prodotti, ma solo pagine statiche. Quindi salvare in un normale CVS i dati mi consentirebbe di ovviare al problema (tranne per il fatto che non voglio usare le virgole come separatore).
La ricerca per filtri è del tipo "Marca auto" "modello auto" "Cilindrata". In pratica mentre si compilano i menu a tendina si ha già il risultato senza submit.
La parte in html sarebbe
Codice:
<table align="center" class="borgia" cellspacing="2" cellpadding="2" width="200">
<tbody><tr>
<td>
<form name="form01" action="form01.php" method="POST">
<select name="marca" onchange="document.form01.submit();">
<option value="marca_A">Marca A</option>
<option value="marca_B">Marca B</option>
</select>
</form>
</td>
<td>
<form name="form02" action="form01.php" method="POST">
<select name="modello" onchange="document.form02.submit();">
<option value="modello_A">Modello A</option>
<option value="modello_B">Modello B</option>
</select>
</form>
</td>
<td>
<form name="form03" action="form01.php" method="POST">
<select name="cilindrata" onchange="document.form01.submit();">
<option value="cilindrata_A">999 CV</option>
<option value="cilindrata_B">1200 CV</option>
</select>
</form>
</td>
</tr>
</tbody>
</table>
A questo punto ci dovrebbe essere il PHP che deve generare nella stessa pagina il risultato della ricerca:
i dati sono memorizzati come
marca|modello|cilindrata|prezzo|etc.etc.
separati dalla linetta |
Codice PHP:
?php
$array = file('files/dati3.txt', FILE_IGNORE_NEW_LINES);
foreach ($array AS $single_record)
{
$link = explode('|',$single_record);
if ($cilindrata=&link[2])
{
echo "$link[0] - $link[1] - $link[2] - $link[3] <br />";
}
else
if ($modello=&link[1])
{
echo "$link[0] - $link[1] - $link[2] - $link[3] <br />";
}
else
if ($marca=&link[0])
{
echo "$link[0] - $link[1] - $link[2] - $link[3] <br />";
}
else
{
echo "nessun risultato!";
}
?>
E ci credereste mai? Non funziona. :cry:
Qualche consiglio o idea?