ここでこの正確な状況が見つからなかったので、質問することにしました。私は、AJAX を使用して PHP ファイルを呼び出し、PHP スクリプトを実行し、xmlhttp.responseText を介して連結された PHP 変数を返し、その応答を警告しようとする JavaScript をいくつか持っています。
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 が存在するページのコンポーネントが機能しません。