我有一个页面index.php
,我将所有其他页面加载到此页面中包含的div中。
results.php
运行搜索并显示数据。profile_v.php
读取特定文本文件,解析数据并显示它。这两个页面都需要GET请求才能将数据提供给它们,并且它们都有自己的AJAX调用来进行相对操作。
所有AJAX调用函数都在index.php
中。当我在profile_v.php
中调用index.php
AJAX时,result.php
AJAX调用不再有效。
profile_v.php
AJAX调用和解析器:
function parser2(code) {
var cpdata = code.split('\n');
var i = 0;
var res;
var len = cpdata.length;
while (i < len) {
res = cpdata[i].split(',');
//alert(res[0]+" -> "+res[1]);
document.getElementById(res[0]).innerHTML = res[1];
i++;
}
}
function prof_load() {
//alert('hi');
var str = '<?php echo $_GET['
user '];?>';
//alert(str);
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
//document.getElementById('junk').innerHTML = this.responseText;
parser2(this.responseText);
}
};
xhttp.open("POST", "action_page.php", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send("profld1=" + str);
}
results.php
AJAX致电:
function search() {
var query = document.getElementById('search').value;
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("frame").innerHTML = this.responseText;
}
};
xhttp.open("GET", "result.php?query=" + query, true);
xhttp.send();
}
function prof_click(str) {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("frame").innerHTML = this.responseText;
}
};
xhttp.open("GET", "profile_v.php?user=" + str, true);
xhttp.send();
}
预期流程
search()
。prof_click()
执行。prof-click()
向profile_v.php
发送GET请求,其中prof_load()
在正在运行时运行。问题:
index.php
时,搜索按钮本身停止工作......(search()
不执行)prof_click()
的GET请求转到profile_V.php
也可以在其他两个功能未添加到index.php
时使用。所有JS函数都在index.php
中,它有div来加载所有页面。 javascript调用在各自的页面中。
我遇到的问题是输入搜索关键字的时间。 GET请求拉取DB中的所有匹配条目。匹配的用户名显示在不同的div中。单击任何一个时,将调用prof_click(str)。当我在$_GET
中回显profile_v.php
时,它会显示传递的字符串,该字符串是搜索关键字(搜索用户)的配置文件。但是当调用body onload中调用的prof_load()
时,在index.php的div内部没有JS函数正在执行。
alert("string")
内加prof_load()
而没有其他内容,并尝试再次运行代码......这次搜索工作正常。但是,加载profile_v.php
时,警报框未显示。我有一种感觉,GET请求在某处变得不匹配。有人可以告诉我这里我缺少什么。非常感谢提前。
答案 0 :(得分:0)
我试图通过AJAX调用一个页面...其中有另一个AJAX调用。
通话顺序不正确。我只需重新安排一些代码并将呼叫放在正确的位置。
感谢所有人的支持......干杯!!