我正在尝试使用ajax从PHP文件中查找两个测量值。 PHP文件获取值并将它们存储为两个变量。这部分工作正常。
我不知道如何将这两个变量带回到javascript中。这是我正在使用的javascript,而.js文件位于同一目录中。
<script src="ajaxgetdata.js"></script>
<script>
MakeRequest();
</script>
以下是ajaxgetdata.js文件的相关部分:
function MakeRequest()
{
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function()
{
if(xmlHttp.readyState == 4)
{
HandleResponse(xmlHttp.responseText);
}
}
xmlHttp.open("GET", "getdata.php", true);
xmlHttp.send(null);
}
function HandleResponse(response)
{
document.getElementById('ResponseDiv').innerHTML = response;
}
我不希望div元素放入值,因为我需要它们最终进入javascript中的单独变量,我需要返回两个值。将两个值返回到变量而不是将某些东西返回到div元素的正确方法是什么?
答案 0 :(得分:2)
通常,您只想传递一个回调:
function makeRequest(callback) {
var xmlHttp = getXMLHttp();
xmlHttp.onreadystatechange = function () {
if(xmlHttp.readyState === 4) {
callback(xmlHttp.responseText);
}
};
}
// ...
makeRequest(function (data) {
// work with your result!
});
至于返回几条信息,常见的方法是JSON。有getdata.php
输出序列化JSON(例如使用json_encode()),如
{"theFirstVariable":"Hello","theSecondVariable":"World!"}
然后用
拿起它makeRequest(function (data) {
var parsedData = JSON.parse(data);
var firstVariable = parsedData.theFirstVariable,
secondVariable = parsedData.theSecondVariable;
// rock'n'roll
console.log(firstVariable + " " + secondVariable); // "Hello World!"
});
你没有将它存储在DOM中。这是一个糟糕的解决方法,不要滥用DOM来临时存储信息。