Salve ragazzi sto facendo un form di inserimento dati in un database mysql, è qui tutto ok, solo mi sto incartando con le selezioni correlate, ovvero, ho un campo regione che alla selezione di questa ricarica il seguente campo provincia con le relative. Finchè il codice non è inserito nel form che ho gia fatto funziona se inserisco il form relativo al select nel form di inserimento dati ovviamente non funzione perchè si annullano.
Come posso fare??? Vi posto i codici:


Codice Select correlati
<?php
$link = mysql_connect('localhost', 'root', 'secret');
if (!$link) {
die ('Non riesco a connettermi: ' . mysql_error());
}

$db_selected = mysql_select_db('italia', $link);
if (!$db_selected) {
die ("Errore nella selezione del database: " . mysql_error());
}
$regioni = array();
$province = array();
$comuni = array();
$result = mysql_query("SELECT idregione, nomeregione FROM regioni");
while ($row = mysql_fetch_assoc($result)) {
$regioni[$row['idregione']] = $row['nomeregione'];
}
$regione_selezionata = isset($_POST['selRegione']) ? $_POST['selRegione'] : "";
$provincia_selezionata = isset($_POST['selProvincia']) ? $_POST['selProvincia'] : "";
$comune_selezionato = isset($_POST['selComune']) ? $_POST['selComune'] : "";
if($regione_selezionata) {
$result = mysql_query("SELECT idprovincia, nomeprovincia FROM province WHERE idregione = " . $regione_selezionata);
while ($row = mysql_fetch_assoc($result)) {
$province[$row['idprovincia']] = $row['nomeprovincia'];
}
}
if($regione_selezionata && $provincia_selezionata) {
$result = mysql_query("SELECT idcomune, nomecomune FROM comuni WHERE idprovincia = " . $provincia_selezionata);
while ($row = mysql_fetch_assoc($result)) {
$comuni[$row['idcomune']] = $row['nomecomune'];
}
}
include "template.php";
function genera_options($options, $chiave_selezionata) {
foreach($options as $chiave => $valore) {
$sel = $chiave == $chiave_selezionata ? 'selected="selected"' : '';
echo '<option value="'.$chiave.'" '.$sel.'>'.$valore."</option>\n";
}
}
?>
template.php

<!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>Conforming XHTML 1.0 Strict Template</title>
</head>
<body>
<form action="" method="post" id="form1">
<fieldset>
<legend>Select dinamiche</legend>
<label for="selRegione">Regione:</label><br />
<select name="selRegione" id="selRegione" onchange="document.getElementById('form1').submit( )">
<option value="">seleziona la regione...</option>
<?php genera_options($regioni,$regione_selezionata)?>
</select>
<br />
<br />
<label for="selProvincia">Provincia:</label><br />
<select name="selProvincia" id="selProvincia" onchange="document.getElementById('form1').submit( )">
<option value="">seleziona la provincia...</option>
<?php genera_options($province,$provincia_selezionata)?>
</select>
<br />
<br />
<label for="selComune">Comune:</label><br />
<select name="selComune" id="selComune" onchange="document.getElementById('form1').submit( )">
<option value="">seleziona il comune...</option>
<?php genera_options($comuni,$comune_selezionato)?>
</select>
</fieldset>
</form>
</body>
</html>
Codice inserimento form
<?php
if($_POST) {
inserisci_record();
}
else {
mostra_form();
}

function inserisci_record()
{
// richiamo il file di configurazione
require 'config.php';

// richiamo lo script responsabile della connessione a MySQL
require 'connect.php';

// recupero i campi di tipo "stringa"
$nome = trim($_POST['nome']);
$email = trim($_POST['email']);
$messaggio = trim($_POST['messaggio']);

// verifico se devo eliminare gli slash inseriti automaticamente da PHP
if(get_magic_quotes_gpc())
{
$nome = stripslashes($nome);
$email = stripslashes($email);
$messaggio = stripslashes($messaggio);
}

$nome = mysql_real_escape_string($nome);
$email = mysql_real_escape_string($email);
$messaggio = mysql_real_escape_string($messaggio);

// recupero gli altri campi del form
$sesso = isset($_POST['sesso']) ? intval($_POST['sesso']) : 0;
$newsletter = isset($_POST['newsletter']) ? 1 : 0;
$attivita = intval($_POST['attivita']);

// verifico la presenza dei campi obbligatori
if(!$nome)
{
$messaggio = urlencode("Non hai inserito il nome");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
exit;
}

// preparo la query
$query = "INSERT INTO utenti (nome,email,sesso,newsletter,attivita,messaggio)
VALUES ('$nome','$email',$sesso,$newsletter,$attivita,'$m essaggio')";

// invio la query
$result = mysql_query($query);

// controllo l'esito
if (!$result) {
die("Errore nella query $query: " . mysql_error());
}

// recupero l'id autoincrement generato da MySQL per il nuovorecord inserito
$id_inserito = mysql_insert_id();

// chiudo la connessione a MySQL
mysql_close();

$messaggio = urlencode("Inserimento effettuato con successo (ID=$id_inserito)");
header('location: '.$_SERVER['PHP_SELF'].'?msg='.$messaggio);
}

function mostra_form()
{
// mostro un eventuale messaggio
if(isset($_GET['msg']))
echo '<b>'.htmlentities($_GET['msg']).'</b><br /><br />';
?>
<form name="form_registrazione" method="post" action="">
<label>nome:
<input name="nome" type="text" />
</label>
(obbligatorio)
<p>
<label>email:
<input name="email" type="text" />
</label>
</p>
<p> Sesso:
<label>
<input type="radio" name="sesso" value="1" />
M</label>
<label>
<input type="radio" name="sesso" value="2" />
F</label>
</p>
<p>
<label>inviami newletter:
<input name="newsletter" type="checkbox" value="1" />
</label>
</p>
<p>
<label>attivit&agrave;:
<select name="attivita">
<option value="0">:: seleziona ::</option>
<option value="1">studente</option>
<option value="2">lavoratore</option>
<option value="3">disoccupato</option>
</select>
</label>
</p>
<p>
<label>messaggio:<br />
<textarea name="messaggio" cols="40" rows="5"></textarea>
</label>
</p>
<p>
<input name="invia" type="submit" value="Invia" />
</p>
</form>
<?php
}
?>