我有这个ajax代码,在1 Div中显示更多细节..我的问题是如何在两个或三个div中显示ajax?
function GetDetails(id)
{
$(document).ready(one);
function one()
{
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else {
xmlhttp = new ActiveXObject('Micrososft.XMLHTTP');
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState ==4 && xmlhttp.status == 200) {
document.getElementById('tv'+id).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open('GET', 'ajax.php?c='+id, true);
xmlhttp.send();
var thebutton = '#button'+id;
$(thebutton).hide();
}
}
答案 0 :(得分:0)
如果您的输出中有SURELY的内容,请将您想要分开的内容分开在PHP代码中,然后在JS中,使用xmlhttp.responseText.split
或PHPJS.org的[explode()][1]
和如果没有这样的东西,那么你或许应该确保会有。不知何故,例如,在PHP中使用str_replace()
。
或者,如果您有足够的带宽,请发送多个请求。
答案 1 :(得分:0)
可能最简单,最快速和最佳实践方式如下:
假设您正在使用jquery并且您有多个div,比如两个,看起来像这样
<div id="tv1More">
We need to add this div somewhere...
</div>
<div id="tv2More">
and this one somewhere else (with 1 ajax call!)
</div>
首先,在页面上的任何位置放置默认隐藏的
<div id="receiver" style="display:none;">
</div>
然后改变你的行
document.getElementById('tv'+id).innerHTML = xmlhttp.responseText;
更新两个div,如下所示:
//Put the retrieved HTML into the DOM
$("#receiver").html(xmlhttp.responseText);
$(document.getElementById('tv'+1)) //Select the div that needs to be updated
.html($("#tv1More").html()); //and update the first div
$(document.getElementById('tv'+2)) //and also
.html($("#tv1More").html()); //the second div
我实际上没有测试过上面的代码,所以可能存在拼写错误。
通常最好使用单个ajax调用,因为它会大大缩短页面加载的时间。