Salve a tutti,
ho un problema con una call ajax (in main.php) a partire da una select, passando un parametro (f) con metodo get ad una pagina (getmappa.php) che effettua una query al db mysql grazie a quel parametro, genera una mappa e la inserisce in un div che viene poi incorporato in main.php.
getmappa.php?f=blablabla se scritto nell'url funziona alla perfezione.
Funziona tutto bene anche se rendo statico il lancio della call (ovviamente non ha senso ma è solo un debug):
con xmlhttp.open("GET", "getmappa.php?f=blabla",true) e dall'altra parte getmappa cui assegno ad una variabile javascript il valore "blablabla".
Il tutto non gira se rendo davvero dinamica la call:
la funzione showmappa parte su evento onchange della selectcodice:function showmappa(forma) { if (forma == "") { document.getElementById("mappa").innerHTML = ""; return; } else { if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function() { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("mappa").innerHTML = xmlhttp.responseText; } } xmlhttp.open("GET","getmappa.php?f="+forma,true); xmlhttp.send(null); } }
In getmappa.php ho il seguente codice:
Grazie per l'aiutocodice:$f = (ISSET($_GET['f'])); if(ISSET($_GET['f'])) $f=strval($_GET['f']); //codice mancante con query al db //di seguito codice javascript stampato in php con funzione echo echo" <div id="mappa2"></div> //funzione in javascript per prelevare parametro da url function getUrlVars() { var vars = {}; var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { vars[key] = value; }); return vars; } //prelevo il valore ed elimino spazie e slash, quel parametro è il nome di un file csv che serve per caricare la mappa in javascript var getforma = getUrlVars()["f"]; forma=getforma.split(' ').join('_'); forma=forma.replace(\"/\", \"_\"); //di seguito codice javascript per update mappa d3.csv(forma+".csv" //codice javascript ); //di seguito codice javascript per creazione mappa var map = new Datamap({ //codice }; </script> <!--chiudo tag html --> </body> </html> "; //chiudo echo in php

					
					
					
						
  Rispondi quotando
						