AJAX - 多个div的PHP更新

时间:2013-06-19 12:13:45

标签: php ajax

大家早上好,我有这个代码,来自w3schools

var xmlhttp

function showCustomer(str,str2)
{
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  }



var url="/Script/ajaxdb/aaaaa.php";
url=url+"?id="+str;
url=url+"&id2="+str2;
url=url+"&sid="+Math.random();
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function stateChanged()
{
if (xmlhttp.readyState==4)  {



  document.getElementById("TXTHINT").innerHTML=xmlhttp.responseText;





  }
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

我想将ID的名称更改为

      document.getElementById("TXTHINT").innerHTML=xmlhttp.responseText;

我想要像

这样的东西
  document.getElementById("TXTHINT1").innerHTML=xmlhttp.responseText;

  document.getElementById("TXTHINT2").innerHTML=xmlhttp.responseText;

  document.getElementById("TXTHINT3").innerHTML=xmlhttp.responseText;

依旧......

我试过

  document.getElementById("TXTHINT"+str).innerHTML=xmlhttp.responseText;

因为我需要变量str的值,要将id名称设为TXTHINT1,TXTHINT2,TXTHINT3等等....

但是ID不起作用。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

我更愿意为您想要更改的所有元素设置一个类attribut。 例如:

<div id="TXTHINT" class="txthints"></div>
<div id="TXTHINT1" class="txthints"></div>

现在,您可以使用类atrri但“txthints”轻松遍历所有元素并设置内容。

var divsToChange = document.getElementsByClassName('txthints');
var newContent = xmlhttp.responseText;

for(i=0; i < divsToChange.length; ++i ) {
 divsToChange[i].innerHTML = newContent;
}

答案 1 :(得分:0)

试试这个

  

xmlHttp.onreadystatechange = function(){

        stageChanged(str, str2);
    };
xmlHttp.open("GET", handlingURL, true);
xmlHttp.send(null); }
     

function stageChanged(str,str2){

    if(xmlHttp.readyState==4)
    {
        document.getElementById("TXTHINT"+str).innerHTML=xmlhttp.responseText;
        //do something with the response
    } }

STR未定义为全局参数,因此无法在响应函数中访问,您需要将str作为参数传递。

答案 2 :(得分:0)

您应指定一个全局变量以在其他函数中访问它。

var xmlhttp
var str_global;
function showCustomer(str,str2)
{
    str_global=str;
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
      {
      alert ("Your browser does not support AJAX!");
      return;
      }



    var url="/Script/ajaxdb/aaaaa.php";
    url=url+"?id="+str;
    url=url+"&id2="+str2;
    url=url+"&sid="+Math.random();
    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
}

function stateChanged()
{
    if (xmlhttp.readyState==4)  {

      document.getElementById("TXTHINT"+str_global).innerHTML=xmlhttp.responseText;

      }
}