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
//ajax.jscodice:<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
//select.phpcodice: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); } } }
Graziecodice:<?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); } } ?>

Rispondi quotando