我正在尝试构建一个谷歌地图网络应用程序。我储存公寓并想编辑它们。我提供了一个代码,用户可以插入并从他们以前存储的公寓中获取信息。我使用的是PHP和JS。
这就是我要做的:
在客户端我使用:
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}'";
有更好的方法吗?或者我做错了什么?
非常感谢。
正如Rob W所回答的,您可以通过添加一些头来解决这个问题:
request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");request.setRequestHeader("Content-Length", params.length);