Salve,
sto cercando disperatamente di far eseguire due distinte select popolate dinamicamente tramite ajax
fino a quando ho 2 select di cui una popolate dinamicamente, il tutto funziona alla grande,
ma come faccio ad aggiungere alla stessa pagina altre 2 select di cui una anch'essa popolata tramite ajax?
// form.htm
codice:
<script>
function GetLinguaggi(Categoria){
InviaDati("categoria="+Categoria);
}
var url = "inc/select.php";
var what = "SetLinguaggi(req.responseText)";
function SetLinguaggi(Linguaggi)
{
var linguaggioBox = document.getElementById("linguaggio");
linguaggioBox.options.length = 0;
if(Linguaggi != "")
{
var arrLinguaggi = Linguaggi.split(",");
for(i = 0; i < arrLinguaggi.length; i++)
{
if(arrLinguaggi[i] != "")
{
linguaggioBox.options[linguaggioBox.options.length] =
new Option(arrLinguaggi[i], arrLinguaggi[i]);
}
}
}
}
</script>
</head>
<select name="categoria" id=categoria onChange="GetLinguaggi(this.options[this.selectedIndex].value)">
<option value="A">A</option>
<option value="B">B</option
</select>
<select id=linguaggio></select> //quella dinamica
//ajax.js
codice:
function scambio(id){
if (document.getElementById){
if(document.getElementById(id).style.display == 'none'){
document.getElementById(id).style.display = 'block';
} else {
document.getElementById(id).style.display = 'none';
}
}
}
function InviaDati(data)
{
// istanziamo l'oggetto XMLHttpRequest
if (window.XMLHttpRequest)
{
req = new XMLHttpRequest();
req.onreadystatechange = PocessaDati;
req.open('POST', url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
req.send(data);
}
// controlliamo la versione di ActiveX
else if (window.ActiveXObject)
{
req = new ActiveXObject('Microsoft.XMLHTTP')
if (req)
{
req.onreadystatechange = PocessaDati;
req.open('POST', url, true);
req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=ISO-8859-1');
req.send(data);
}
}
}
function PocessaDati()
{
// monitoriamo lo stato dell'invio
if (req.readyState == 4)
{
// restituiamo lo stato della richiesta
if (req.status == 200)
{
eval(what);
}else{
alert('Problema nella gestione dei dati: ' +
req.responseText);
}
}
}
//select.php
codice:
<?php
$linguaggi = array();
$categoria=$_POST['categoria'];
if($categoria=="A"){
$linguaggi["$categoria"] = array(
"Tutti,
A,B,C
"
);
}
if(isset($_POST["categoria"]) && isset($linguaggi[$_POST["categoria"]]))
{
foreach($linguaggi[$categoria] as $linguaggio)
{
printf("%s,", $linguaggio);
}
}
?>
Grazie