Ajax多个div

时间:2012-02-05 09:32:36

标签: php jquery ajax

我有这个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();
        }
    }

2 个答案:

答案 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调用,因为它会大大缩短页面加载的时间。