我的项目有问题。 在我的网站上我有一个带有单个按钮的页面html和onclick()eventa js函数调用intro.js,通过XmlHttpRequestObject必须在许多php函数中进行多次调用,详细说明:
在js中我调用scan()函数
function scan() {
if (xmlHttp)
{
// try to connect to the server
try
{
// initiate reading the async.txt file from the server
xmlHttp.open("GET", "php/intro.php?P1=http://"+oStxt.value, true);
xmlHttp.onreadystatechange = handleRequestStateChange;
xmlHttp.send(null);
// change cursor to "busy" hourglass icon
document.body.style.cursor = "wait";
}
// display the error in case of failure
catch (e)
{
alert("Can't connect to server:\n" + e.toString());
// revert "busy" hourglass icon to normal cursor
document.body.style.cursor = "default";
}
}
}
在handleRequestStatuschange中我有:
function handleRequestStateChange()
{
// obtain a reference to the <div> element on the page
// display the status of the request
if (xmlHttp.readyState == 0 || xmlHttp.readyState == 4)
{
// revert "busy" hourglass icon to normal cursor
document.body.style.cursor = "default";
// read response only if HTTP status is "OK"
if (xmlHttp.status == 200)
{
try
{
// read the message from the server
response = xmlHttp.responseText;
// display the message
document.body.appendChild(oRtag);
oPch = document.getElementById("divRtag");
oOch = document.createTextNode(response);
oPch.appendChild(oOch);
}
catch(e)
{
// display error message
alert("Error reading the response: " + e.toString());
}
}
else
{
// display status message
alert("There was a problem retrieving the data:\n" +
xmlHttp.statusText);
// revert "busy" hourglass icon to normal cursor
document.body.style.cursor = "default";
}
}
}
它适用于一个php调用,但我需要在intro.php(scan2.php,scan3.php,ecc ecc)之后调用扫描函数中的不同php页面,并使用json_decode写入返回的数组的单个数据我的HTML页面上的div标签。 哪个是调用不同php页面并使用ajax中的单个js函数管理结果的最佳方法?
提前致谢 的Alessandro
答案 0 :(得分:2)
不确定如何构建php函数。你不能创建一个调用其他功能(扫描)的功能吗?
function doScan(){
$data = array();
//like this, or with a loop
$data['scan1'] = scan1();
....
$data['scanN'] = scanN();
echo json_encode($data);
}
答案 1 :(得分:0)
真的,想到的最简单的方法就是参数化这个功能。这就像
一样简单function doScan(url) { // Code here }
然后简单地使用url
变量生成完全相同的ajax请求。
xmlHttp.open("GET", "php/" + url + "?P1=http://"+oStxt.value, true);
接下来,只需使用各种参数调用doScan
函数。
doScan("index.php");
doScan("otherPage.php");
doScan("somethingElse.php");
这将在您指定的PHP文件上发出ajax请求。