还没有在这里找到这个确切的情况,所以我想我会问。我有一些使用 AJAX 的 JavaScript 尝试调用 PHP 文件,执行 PHP 脚本,并通过 xmlhttp.responseText 返回连接的 PHP 变量,然后提醒该响应。
JS
function queryDB() {
var xmlhttp;
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)
{
alert(xmlhttp.responseText);
}
}
xmlhttp.open("GET","php/location.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send();
}
PHP
<?php
$con = mysql_connect("<THIS DATA HIDDEN FOR SECURITY PURPOSES, IT IS CORRECT");
if (!$con) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db("gpstracks", $con);
$bus = $_GET['bus'];
$query = "SELECT lat, lon from tracksarchive where runnerid = '$bus' ORDER BY time DESC LIMIT 1;";
$latlon = mysql_query($query);
while ($row = mysql_fetch_array($latlon, MYSQL_ASSOC)) {
$lat = $row['lat'];
$lon = $row['lon'];
}
$result = $lat . ", " . $lon;
echo $result;
mysql_close($con);
?>
是的,我知道 mysql_ 已经被 mysqli_ 取代了,我稍后再处理。当我自己执行 PHP(使用表单提交)时 - 它显示表中的正确值,但是当我提醒 xmlhttp.responseText 时 - 我只得到逗号和空格 - 没有传递的变量。知道我做错了什么吗?非常感谢您的帮助。
旁注:我知道现在 AJAX 调用的首选方法是 jQuery——但是当我使用 jQuery 时,这个 JavaScript 所在页面的一个组件不起作用。