Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单个ajax请求更新2个不同的<;部门>;_Javascript_Php_Ajax - Fatal编程技术网

Javascript 单个ajax请求更新2个不同的<;部门>;

Javascript 单个ajax请求更新2个不同的<;部门>;,javascript,php,ajax,Javascript,Php,Ajax,是否可以使用1个ajax同时更新2个不同的目标DIV 假设我有index.html,如下所示: xmlhttp=新的XMLHttpRequest(); xmlhttp.onreadystatechange=函数(){ if(xmlhttp.readyState==4&&xmlhttp.status==200){ document.getElementById(“主体”).innerHTML=xmlhttp.responseText;} } open(“GET”,“some_page.php”,

是否可以使用1个ajax同时更新2个不同的目标DIV

假设我有index.html,如下所示:


xmlhttp=新的XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“主体”).innerHTML=xmlhttp.responseText;}
}
open(“GET”,“some_page.php”,true);
xmlhttp.send();
一个大尺寸的html内容。。。。
在上述情况下,我只知道some_page.php必须编写如下:

<php
     echo "<div id="update_1"><h1>Apple</h1></div>
           <div id="dont_ajax">A big size of html content....</div>
           <div id="update_2"><h1>Orange</h1></div>";
?>

我不希望some_page.php加载id=“dont_ajax”的内容,因为它有大量的html内容。我正在寻找某种解决方案,如:

<script>
  xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange = function() {
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        document.getElementById("update_1").innerHTML = xmlhttp.responseText(1);
        document.getElementById("update_2").innerHTML = xmlhttp.responseText(2);}
                                             }
  xmlhttp.open("GET","some_page.php",true);
  xmlhttp.send();
</script>

<div id="main_body">
<div id="update_1"></div>
<div id="dont_ajax">A big size of html content....</div>
<div id="update_2"></div>
</div>

xmlhttp=新的XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“update_1”).innerHTML=xmlhttp.responseText(1);
document.getElementById(“update_2”).innerHTML=xmlhttp.responseText(2);}
}
open(“GET”,“some_page.php”,true);
xmlhttp.send();
一个大尺寸的html内容。。。。
因此,some_page.php可以简单到:

<php
 echo "<h1>Apple</h1>"; //(become respondtext(1))

 echo "<h1>Orange</h1>"; //(become respondtext(2))
?>

我知道我上面的例子行不通,我只想告诉你问题所在以及我想要实现的目标。请给我一些想法,谢谢。或者如果你有其他方法来实现这一点,请建议


我需要本机JS的解决方案。

是的,这是可能的。可以更新任意数量的元素。 这取决于您准备和解析响应的方式

这段代码很糟糕,因为ajax响应只有一个responseText:

<php
 echo "<h1>Apple</h1>"; //(become respondtext(1))
 echo "<h1>Orange</h1>"; //(become respondtext(2))
?>

第一个问题是你的php会有语法错误,因为没有在你想要回显的字符串中回显双引号。你对我的问题有什么解决办法吗?没有,答案应该是一个,但是。。。您为什么不使用如下数组进行响应:
<php
 echo "<h1>Apple</h1>"; //(become respondtext(1))
 echo "<h1>Orange</h1>"; //(become respondtext(2))
?>
<php
 echo "{update_1: '<h1>Apple</h1>', update_2: '<h1>Orange</h1>'}";
?>
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
   var data = JSON.parse(xmlhttp.responseText);
   ['update_1', 'update_2'].forEach(function(i){
      document.getElementById(i).innerHTML = data[i];
   });
}