FAccio un esempriio del codice scritto.
Pagina Gestione.php
all'interno del script javascript
Codice PHP:
var ricerca_comuni;
var selezione;
function cercaCom(tipo)
{
// relative ai comuni
document.form1.cap.value = "";
selezione = tipo;
// se 0 controllo la provincia della abitazione
// se 0 controllo provincia nascita
if (selezione==0)
var valorecampo = document.form1.provincia.options[document.form1.provincia.selectedIndex].value;
else
var valorecampo = "";
// per l'oggetto nativo XMLHttpRequest
if (window.XMLHttpRequest)
{
ricerca_comuni = new XMLHttpRequest();
ricerca_comuni.onreadystatechange = ricevicom;
ricerca_comuni.open("GET", "cercacomuni.asp?prov="+valorecampo,true);
ricerca_comuni.send(null);
// per IE
}
else if (window.ActiveXObject)
{
ricerca_comuni = new ActiveXObject("Microsoft.XMLHTTP");
if (ricerca_comuni)
{
ricerca_comuni.onreadystatechange = ricevicom ;
ricerca_comuni.open("GET", "cercacomuni.asp?prov="+valorecampo,true);
ricerca_comuni.send();
}
}
}
function ricevicom()
{
// relative ai comuni
// se 0 controllo la provincia della abitazione
var strRes;
var arrValori;
var strComuni ="$_GET['comuni']";
if (ricerca_comuni.readyState == 4)
{
strRes=ricerca_comuni.responseText;
arrValori=strRes.split("|");
if (selezione==0)
document.form1.comune.options.length=0;
for(i=0;i<arrValori.length;i++)
{
strcom =arrValori[i].split("_")
if (selezione==0)
document.form1.comune.options[document.form1.comune.options.length]= new Option(strcom[2],strcom[0] + "_" + strcom[1] + "_" + strcom[2]);
}
}
}
function SelCap()
{
valcom = document.form1.comune.value;
arrcomune = valcom.split("_");
document.form1.cap.value = arrcomune[1];
}
function SelNas(richieste)
{
if (document.form1.nazione.value==0)
{
document.getElementById('labprov').innerHTML="<select name=provincia onchange=cercaCom(0) class='oggettiSel2' style='border:1px solid;border-color:#cccccc'></select>"
document.getElementById('labcom').innerHTML="<select name=comune onChange='javascript:SelCap()' class='oggettiSel2' style='border:1px solid;border-color:#cccccc'></select>"
}
else
{
document.getElementById('labprov').innerHTML="<INPUT name=provincia id=provincia value='EE' size=50 maxLength=13 class='oggettilong' style='border:1px solid;border-color:#cccccc'>"
document.getElementById('labcom').innerHTML="<INPUT name=comune id=comune value='EE' size=50 maxLength=13 class='oggettilong' style='border:1px solid;border-color:#cccccc'>"
}
document.form1.cap.value = "";
}
All'interno del form
Codice PHP:
echo "<tr align='center'> ";
echo "<td class=cellabold2>Nazione
";
echo"<select name='nazione' class='oggettiSel2' id='nazione' style='border:1px solid;border-color:#cccccc' onChange=\"javascript:SelNas('nas')\">";
echo "<option value=0>Italia</option>";
// scrivi tabella nazioni
$query2 = "select * from nazioni where ID>0 order by Nazione";
$result2 = mysql_query($query2,$conn);
while ($record2 = mysql_fetch_array($result2))
{
$descrNaz= $record2[Nazione];
$idrec = $record2[ID];
if($nazione==$idrec)
echo "<option selected value=$idrec>$descrNaz</option>";
else
echo "<option value=$idrec>$descrNaz</option>";
}
echo "</select>";
echo "</td>";
echo "</tr>";
echo "<tr align='center'> ";
echo "<td class=cellabold2>Provincia
";
echo "<div name=labprov id=labprov>";
echo"<select name='provincia' class='oggettiSel2' id='provincia' style='border:1px solid;border-color:#cccccc' onChange=\"javascript:cercaCom(0)\">";
echo "<option value=0>-</option>";
$query2 = "select * from province order by Descr_provincia";
$result2 = mysql_query($query2,$conn);
while ($record2 = mysql_fetch_array($result2))
{
$descrNaz= $record2[Descr_Provincia];
$idrec = $record2[ID_Provincia];
if($nazione==$idrec)
echo "<option selected value=$idrec>$descrNaz</option>";
else
echo "<option value=$idrec>$descrNaz</option>";
}
echo "</select>";
echo"</div>";
echo "</td>";
echo "</tr>";
echo "<tr align='center'> ";
echo "<td class=cellabold2>Comune
";
echo "<div name=labcom id=labcom>";
echo"<select name='comune' class='oggettiSel2' id='comune' style='border:1px solid;border-color:#cccccc' onChange=\"javascript:SelCap()\">";
echo "<option value=0>-</option>";
$query2 = "select * from comuni order by Descr_comune";
$result2 = mysql_query($query2,$conn);
while ($record2 = mysql_fetch_array($result2))
{
$descrNaz= $record2[Descr_comune];
$idrec = $record2[ID];
$capProv = $record2[cap];
if($nazione==$idrec)
echo "<option selected value='$idrec_$capProv'>$descrNaz</option>";
else
echo "<option value='$idrec_$capProv'>$descrNaz</option>";
}
echo "</select>";
echo"</div>";
echo "</td>";
echo "</tr>";
echo "<tr align='center'> ";
echo "<td class=cellabold2>Cap
";
echo "<input name='cap' type='text' id='cap' maxlength='120' class='oggettilong' style='border:1px solid;border-color:#cccccc' value='$cap'>";
echo "</td>";
echo "</tr>";
Fino a qua tutto bene se seleziono una nazione estera mi scrive correttamente le input se seleziono l'italia mi visualizza le combo.
Adesso devo visualizzare i comuni in base alla provincia selezionata senza ricarica la pagina.
La pagina cercacomuni.php contiene il seguente codice.
Codice PHP:
<?PHP
include("../../include/config.php");
include("../../include/db.php");
$conn = db_connect();
$prov=$_GET['prov']
$query2 = "select * from Comuni,Province where Comuni.ID_Provincia=Province.ID_Provincia and Comuni.ID_Provincia=$prov order by Descr_Comune desc";
$result2 = mysql_query($query2,$conn);
while ($record2 = mysql_fetch_array($result2))
{
$descrNaz= $record2[Descr_comune];
$idrec = $record2[ID];
$capProv = $record2[cap];
$array_comune = "$idrec_$capProv_$descrNaz|$array_comune";
}
$array_comune = "0_0_-|$array_comune";
echo($array_comune);
?>
Il problema è che non visualizza nessun record.
Qualcuno mi sa dire se sbaglio oppure se non è compatibile questo discorso con php?
grazie