Ho l'impressione che quel pezzo di codice 'js' mi stia creando qualche confusione.
Il problema sta nel 'form' con i due campi <select ... , di cui il secondo,
<select name='idmodello' ......> (dinamico),
mi carica i modelli abbinati alla scelta della marca fatta nel primo campo
<select name='idmarca' .......> .
Perchè quando clicco sul primo campo per scegliere la marca questi, anche passandomi esattamente i modelli abbinati, si resetta immediatamente, facendo scomparire dall'output il nome della marca scelta e ritornando sulla frase settata di default ( 'Tutti' ) ?
Questo è il codice e spero che possiate aiutarmi.
Codice PHP:
-------- cerca.php --------------
<?php
session_start();
if (!isset($_SESSION['settore'])) {
$_SESSION['settore'] = '';
}
if (isset($_GET['settore'])) {
$_SESSION['settore'] = $_GET['settore'];
}
if (!isset($_SESSION['modello'])) {
$_SESSION['modello'] = '';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>CMS: Pneumatici.</title>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="./ricarica.function.js"></script>
</head>
<body>
<h1>Cerca pneumatici.</h1>
[url='aggiungi_pneumatici.php']Aggiungi pneumatici[/url] nel settore: <?php echo $_SESSION['settore'] ?>.</p>
<?php
$connessione ;
$seleziona_DB ;
$marche = @mysql_query("SELECT id, marca
FROM marca", $connessione);
if (!$marche) {
exit('
Lista marche non caricata!</p>');
}
?>
<form action="modello.php" method="get">
Scegli la Marca:</p>
<label for="marca">Marca:</label>
// se clicco su un nome nell'elenco del campo select, non mi appare in output,
// ma mi appare il valore come la riga sotto ( Tutti ).
// secondo me è impostata male la funzione "onchange=..."
<select name="idmarca" size="1" onchange="ricarica(this);">
<option selected value="">Tutti</option>
<?php
while ($marca=mysql_fetch_array($marche)) {
$idmarca=$marca['id'];
$marca=htmlspecialchars($marca['marca']);
echo "<option value='$idmarca'>$marca</option>\n";
}
if (isset($_GET['idmarca'])) {
$idmarca = $_GET['idmarca'];
} else {
$idmarca = '';
}
$settore = $_SESSION['settore'];
$modelli = @mysql_query("SELECT modello.id, modello
FROM modello, settore
WHERE idmar='$idmarca'
AND settore='$settore'
AND idset=settore.id", $cnsdb);
if (!$modelli) {
exit('
Lista modelli non caricata!</p>');
}
?>
</select>
Scegli il modello:</p>
<label for="modello">Modello:</label>
// i valori comunque me li abbina esattamente
<select name="modello" size="1">
<option selected value="">Tutti</option>
<?php
while ($modello=mysql_fetch_array($modelli)) {
$idmodello=$modello['id'];
$modello=htmlspecialchars($modello['modello']);
echo "<option value='$modello'>$modello</option>\n";
}
?>
</select>
<input type="submit" value="VAI" />
</form>
Torna a :[url="index_pneumatici.php"] Gestione Pneumatici.[/url]</p>
</body>
</html>
e questa è la funzione '.js' richiamata :
Codice PHP:
------------ricarica.function.js------------------
function ricarica(ObjectSelect) {
var Temp=ObjectSelect.options[ObjectSelect.selectedIndex].value;
if(Temp!="")
window.location="./cerca_pneumatici.php?idmarca="+(Temp);
}
Grazie per ora!