Innanzitutto grazie mille per il file, mi è utilissimo..
Ho provato a modificare il file option.class.php secondo le mie esigenze, ovvero cambiando i nomi delle variabili secondo i nomi dei campi del mio database. Risultato: riesco a scegliere nella prima tendina, ma una volta scelto non si carica nulla nella seconda... Cos'ho sbagliato?
Codice PHP:
<?php
session_start();
class OptionMenu
{
protected $conn;
protected $page;
public function __construct()
{
$this->page = basename($_SERVER['PHP_SELF']);
$this->DbConnectAndSelect();
$this->ParsingAction();
}
protected function DbConnectAndSelect()
{
include "db_config.php";
$this->conn = @mysql_connect($host,$username,$password) OR
die("Impossibile connettersi al server");
@mysql_select_db($db, $this->conn) OR
die("Impossibile selezionare il database");
}
public function JsHeader()
{
echo '<SCRIPT language=JavaScript>
<!--
function goSelect(daform)
{
with(daform)
{
top.window.location=options[selectedIndex].value;
}
}
-->
</SCRIPT>
';
}
public function ShowOggetti()
{
if(isset($_SESSION['oggetto']))
{
$oggetto = $_SESSION['oggetto'];
}
else
{
$oggetto = "Seleziona un oggetto";
}
$sql = "SELECT id_oggetto, nome_oggetto FROM oggetti";
$res = mysql_query($sql, $this->conn);
echo '<form>
<select onchange="goSelect(this)" size="1">
<option>' . $oggetto . '</option>
';
while($row = mysql_fetch_array($res))
{
if($row['nome_oggetto'] != $oggetto)
{
echo '<option value="' . $this->page . '?id_ogg=' . $row['id_oggetto'] . '&action=marca&oggetto=' . $row['nome_oggetto'] . '">' . $row['nome_oggetto'] . '</option>
';
}
}
echo '</select>
</form>
';
}
public function ShowMarche()
{
if(isset($_SESSION['marca']))
{
$marca = $_SESSION['marca'];
}
else
{
$marca = 'Seleziona una marca';
}
echo '<form>
<select onchange="goSelect(this)" size="1">
<option>' . $marca . '</option>
';
if($oggetto = $this->SelectMarca())
{
$sql = "SELECT id_marca,nome_marca FROM marche WHERE id_ogg='$oggetto'";
$res = mysql_query($sql, $this->conn);
while($row = mysql_fetch_array($res))
{
if($row['nome_marca'] != $marca)
{
echo '<option value="' . $this->page . '?id_mark=' . $row['id_marca'] . '&action=modello&marca=' . $row['nome_marca'] . '">' . $row['nome_marca'] . '</option>
';
}
}
}
echo '</select>
</form>
';
}
public function ShowModelli()
{
if(isset($_SESSION['modello']))
{
$modello = $_SESSION['modello'];
}
else
{
$modello = 'Seleziona un modello';
}
echo '<form>
<select onchange="goSelect(this)" size="1">
<option>' . $modello . '</option>
';
if($_GET['id_marca'])
{
$sql = "SELECT id_modello,nome_modello FROM modelli WHERE id_mark='$_GET[id_marca]'";
$res = mysql_query($sql, $this->conn);
while($row = mysql_fetch_array($res))
{
echo '<option value="' . $this->page . '?id_modello=' . $row['id_modello'] . '&action=end&modello=' . $row['nome_modello'] . '">' . $row['nome_modello'] . '</option>
';
}
}
echo '</select>
</form>
';
}
protected function SelectMarca()
{
if(!$_GET['id_oggetto'] AND !$_SESSION['oggetto'])
{
return FALSE;
}
else
{
if($_GET['id_oggetto'])
{
return $_GET['id_oggetto'];
}
else
{
$sql = "SELECT id_oggetto FROM oggetti WHERE oggetto='$_SESSION[oggetto]'";
$res = mysql_query($sql, $this->conn);
$row = mysql_fetch_array($res);
return $row['id_oggetto'];
}
}
}
protected function ParsingAction()
{
if(isset($_GET['action']))
{
if($_GET['action'] == 'marca')
{
$_SESSION['oggetto'] = $_GET['oggetto'];
unset($_SESSION['marca']);
unset($_SESSION['modello']);
}
if($_GET['action'] == 'modello')
{
$_SESSION['marca'] = $_GET['marca'];
unset($_SESSION['modello']);
}
if($_GET['action'] == 'end')
{
$_SESSION['modello'] = $_GET['modello'];
header("Location: result.php");
die;
}
}
}
}
?>