gpt4 book ai didi

php - 将 php 变量传递给 xmlhttp.responseText

转载 作者:行者123 更新时间:2023-11-30 13:01:59 26 4
gpt4 key购买 nike

在这里找不到确切的情况,所以我想问问。我有一些 JavaScript,它们使用 AJAX 试图调用一个 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 所在的页面组件不起作用。

最佳答案

when I alert the xmlhttp.responseText - I only get the comma and space - no passed variables

您没有正确执行GET;在你的 JavaScript 中你有

xmlhttp.open("GET","php/location.php",true);

即您执行了一个没有 URI 查询字符串的 GET 请求。

在你的 PHP 中你有

$bus = $_GET['bus'];

即你从 URI 查询字符串中获取这些数据,除了没有传递,所以这将是空的,所以

$query = "SELECT lat, lon from tracksarchive where runnerid = '$bus' ORDER BY time DESC LIMIT 1;";

没有按预期工作。

你真的很想做这样的事

xmlhttp.open(
"GET",
"php/location.php?bus="+window.encodeURIComponent(foobar),
true
); // foobar your value for `bus`

此外,您需要对 $bus 进行一些服务器端清理,因为它代表您对 SQL 注入(inject)持开放态度。

关于php - 将 php 变量传递给 xmlhttp.responseText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17089220/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com