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:

codice:
 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);
    }
}
la funzione showmappa parte su evento onchange della select

In getmappa.php ho il seguente codice:

codice:
$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
Grazie per l'aiuto