salve ragazzi ho un problema ho questo script php che popola dinamicamente tramite ajax delle combo con regione provincia comuni..
tutto funziona solo che la combo relativa ai comuni mi stampa 2 volte il nome dello stesso comune
ecco una piccola immagine di cosa mi viene visualizzato nelle combo in locale

questa invece è l'immagine relativa al mio db_comuni

Codice PHP:
<?
//set IE read from page only not read from cache
//header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
//header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
//header ("Cache-Control: no-cache, must-revalidate");
//header ("Pragma: no-cache");
//header("content-type: application/x-javascript; charset=tis-620");
$data=$_GET['data'];
$val=$_GET['val'];
//set database
$dbhost = "localhost";
$dbuser = "root";
$dbpass = "pass";
$dbname = "db_comuni";
mysql_pconnect($dbhost,$dbuser,$dbpass) or die ("Unable to connect to MySQL server");
if ($data=='provincia') { // first dropdown
echo "<select class='text' name='provincia' onChange=\"dochange('comune', this.value)\">\n";
echo "<option value='0'>Scegli la provincia</option>\n";
$result=mysql_db_query($dbname,"select `id`, `nome` from regioni order by `id`");
while(list($id, $name)=mysql_fetch_array($result)){
echo "<option value=\"$id\" >$name</option> \n" ;
}
} else if ($data=='comune') { // second dropdown
echo "<select class='text' name='comune' onChange=\"dochange('cap', this.value)\">\n";
echo "<option value='0'>scegli il comune</option>\n";
$result=mysql_db_query($dbname,"SELECT `id`, `nome` FROM province WHERE `regione` = '$val' ORDER BY `id` ");
while(list($id, $name)=mysql_fetch_array($result)){
echo "<option value=\"$id\" >$name</option> \n" ;
}
} else if ($data=='cap') {
echo "<select class='text' name='cap' >\n";
// echo "<option value='0'></option>\n";
$result=mysql_db_query($dbname,"SELECT `id`, `nome` FROM comuni WHERE `provincia` = '$val' ORDER BY `id` ");
while(list($id, $name)=mysql_fetch_array($result)){
echo "<option value=\"$id\" >$name</option> \n" ;
}
}
echo "</select>\n";
?>
da come ho capito nella combo comuni mi stampa sia id che nome in base al database. come posso far comparire il nome una volta sola?
premetto che sono alle prime armi.
spero in un vostro aiuto
grazie in anticipo
non so se può servire ma inserisco anche la parte ajax
Codice PHP:
<!-- combo fine--3F4A59>
<script language=Javascript>
function Inint_AJAX() {
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE
try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript
alert("XMLHttpRequest not supported");
return null;
};
function dochange(src, val) {
var req = Inint_AJAX();
req.onreadystatechange = function () {
if (req.readyState==4) {
if (req.status==200) {
document.getElementById(src).innerHTML=req.responseText; //retuen value
}
}
};
req.open("GET", "italia.php?data="+src+"&val="+val); //make connection
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=iso-8859-1"); // set Header
req.send(null); //send value
}
window.onLoad=dochange('provincia', -1); // value in first dropdown
</script>