2012-02-22 17 views
0

我正在尝试构建Google Maps网络应用程序。我存储单位,并想编辑它们。我提供了一个代码,用户可以从他们之前存储的单元中插入并获取信息。我使用PHP和JS。如何使用POSTHTMLHTMLRequest和params正确? PHP没有获取POST信息

这就是我想要做的事:

在我使用的客户端:

var clave="<?=$_POST['identificador']?>"; 
    var params="clave="+clave; 

function downloadUrl(params,url, callback) { 
    var request = window.ActiveXObject ? 
     new ActiveXObject('Microsoft.XMLHTTP') : 
     new XMLHttpRequest; //en cierto modo es una API, acepta requests HTTP. 

    request.onreadystatechange = function() { 
    if (request.readyState == 4) { 
     request.onreadystatechange = doNothing; 
     callback(request.responseText, request.status); 
    } 
    }; 

    request.open("POST", url, true); 
    request.send(params); 
} 

我从以前的PHP页面得到“identificador”,这是获得正确的值。

然后,我打电话将downloadURL功能:

downloadUrl(params,"phpsqlajax_genxml1.php", function(data) { 
    var xml = parseXml(data); 
    var markers = xml.documentElement.getElementsByTagName("marker"); //coge todos los markers 
    //GETS XML RESPONSE AND PUTS MARKERS INTO MAPS 
    } 
    }); 

但是当我打电话phpsqlajax_genxml1.php它没有得到POST值:

$clave = $_POST["clave"]; 
echo $clave; //this is not echoing nothing 
$query = "SELECT * FROM markers WHERE clave = '{$clave}'"; 

有没有更好的办法做到这一点或我究竟做错了什么?

非常感谢提前。

+0

包括以下两个标题:'request.setRequestHeader(“内容类型”,“应用/的X WWW的形式 - urlencoded“); request.setRequestHeader(”Content-Length“,params.length);' – 2012-02-22 14:59:57

+0

太棒了,谢谢! – danielrozo 2012-02-22 15:12:22

回答

0

由于罗布w ^回答,您可以通过添加一些头解决这个问题:

request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");request.setRequestHeader("Content-Length", params.length);