Buongiorno, è il mio primo messaggio su questo forum, ho un grosso problema: sul mio sito è presente un catalogo di libri, che è possibile filtrare con una ricerca per un singolo campo scglibile tramite tendina; alcuni campi (es. Autore) necessitano di inserimento tramite text, altri (es Editore, Formato) hanno un inserimento tramite tendina che "pesca" dal db. Per fare questo la pagina, una volta scelto il parametro per cui cercare, ricarica e carica a seconda un'area di testo o la tendina. Vorrei che la cosa avvenisse dinamicamente senza dover ricaricare la pagina, ma cercando un po' ho scoperto la cosa è integrabile solo via javascript (di cui ho ZERO esperienza). Ci sono form copypastabili per la generazione di tendine dinamiche, ma il mio problema è che non tutti i parametri di ricerca devono generare tendina, alcuni generano area di testo.
Qui di seguito c'è il codice della pagina:
Codice PHP:
<?php
include ('sbclass.php');
$par=$_POST['par'];
if ($par==''){
echo "<form method='post' action='catalogo.php'>";
echo "Ricerca per: ";
echo "<select name = 'par'>";
echo "<option value =".NULL."> -Scegli- </option>";
echo '<option value = isbn > ISBN </option>';
echo '<option value = titolo > Titolo </option>';
echo '<option value = key > Chiave </option>';
echo '<option value = edi > Editore </option>';
echo '<option value = aut > Autore </option>';
echo '<option value = for > Formato </option>';
echo '<option value = coll > Collana </option>';
echo '<option value = cat > Categoria </option>';
echo '<option value = tar > Target </option>';
echo '</select>
';
echo "<input type='submit' value=Cerca! class='buy btn_l'>";
}
else{
echo "<form method='post' action='filtered.php'>";
if ($par=='isbn'){
echo "Ricerca per ISBN: <input type='text' name='isbn'>
";
}
if ($par=='titolo'){
echo "Ricerca per Titolo: <input type='text' name='titolo'>
";
}
if ($par=='key'){
echo "Ricerca per Parole Chiave: <input type='text' name='key'>
";
}
if ($par=='edi'){
echo "Ricerca per Editore: ";
$db=new Database();
$_SESSION['db']=serialize ($db);
$db->connect();
$query="SELECT DISTINCT editore FROM schede;";
$ris=$db->query($query);
echo "<select name = 'edi'>";
echo "<option value =".NULL."> -Editore- </option>"; // valore default NULL
while ($row=mysql_fetch_array($ris)) {
if($row['editore']!=''){
echo '<option value ="'.$row['editore'].'">'.$row["editore"]."</option>"; //...value = "' e '">.... son fatti così perché sennò se ci sono spazi html inserisce delle "" che mi interrompono la stringa alla prima parola.
}
}
echo '</select>
';
}
if ($par=='for'){
echo "Ricerca per Formato: ";
$db=new Database();
$_SESSION['db']=serialize ($db);
$db->connect();
$query="SELECT DISTINCT formato FROM schede;";
$ris=$db->query($query);
echo '<select name = "for">';
echo "<option value =".NULL."> -Formato- </option>"; // valore default NULL
while ($row=mysql_fetch_array($ris)) {
if($row['formato']!=''){
echo '<option value ="'.$row['formato'].'">'.$row["formato"]."</option>";
}
}
echo '</select>
';
}
if ($par=='aut'){
echo "Ricerca per Autore: <input type='text' name='aut'>
";
}
if ($par=='coll'){
echo "Collana: ";
$db=new Database();
$_SESSION['db']=serialize ($db);
$db->connect();
$query="SELECT DISTINCT collana FROM schede;";
$ris=$db->query($query);
echo '<select name = "coll">';
echo "<option value =".NULL."> -Collana- </option>"; // valore default NULL
while ($row=mysql_fetch_array($ris)) {
if($row['collana']!=''){
echo '<option value ="'.$row['collana'].'">'.$row["collana"]."</option>";
}
}
echo '</select>
';
}
if ($par=='cat'){
echo "Ricerca per Categoria: ";
$db=new Database();
$_SESSION['db']=serialize ($db);
$db->connect();
$query="SELECT DISTINCT categoria FROM schede;";
$ris=$db->query($query);
echo '<select name = "cat">';
echo "<option value =".NULL."> -Categoria- </option>"; // valore default NULL
while ($row=mysql_fetch_array($ris)) {
if($row['categoria']!=''){
echo '<option value ="'.$row['categoria'].'">'.$row["categoria"]."</option>";
}
}
echo '</select>
';
}
if ($par=='tar'){
echo "Ricerca per Target: ";
$db=new Database();
$_SESSION['db']=serialize ($db);
$db->connect();
$query="SELECT DISTINCT target FROM schede;";
$ris=$db->query($query);
echo '<select name = "tar">';
echo "<option value =".NULL."> -Target- </option>"; // valore default NULL
while ($row=mysql_fetch_array($ris)) {
if($row['target']!=''){
echo '<option value ="'.$row['target'].'">'.$row["target"]."</option>";
}
}
echo '</select>
';
}
echo "<input type='submit' value=Cerca! class='buy btn_l'>";
}
echo '
';
?>
P.S. se andava postato nell'area php, perdonatemi!
Grazie mille!