使用ajax修改javascript代码

时间:2012-11-26 19:25:33

标签: javascript ajax

我有这个javascript代码:

<div id="change">
   <script>
      var change=0;
   </script>     
</div>

我使用ajax来更新它。事实上,当我更新数据库时,我想将变量'change'更改为值1。:

function update(value,username,competency)
{

   if (window.XMLHttpRequest)
   {// code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
   }
   else
   {// code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
   }
   xmlhttp.onreadystatechange=function()
   {
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
         document.getElementById("updateAll").innerHTML=xmlhttp.responseText; 
         document.getElementById("change").innerHTML='<script >var change=1</script> '; 
      }
   };
   xmlhttp.open("GET","Update_evaluation_ajax.php?value="+value+"&username="+username+"&competency="+competency,true);
   xmlhttp.send(null); 
}

你能帮我弄清楚为什么这不起作用吗?

2 个答案:

答案 0 :(得分:1)

添加了<script>

innerHTML标记未执行。

为什么不设置change = 1而不是设置innerHTML?看起来change是一个全局变量,因此您可以从任何地方更改它。

答案 1 :(得分:0)

执行初始<script>代码后,会创建一个可通过change访问的全局变量window.change

据推测,您希望在代码中的其他位置使用change变量。在没有看到代码的情况下,很难建议一个好的解决方案,但是您可以在响应函数中设置window.change,并且执行的任何后续代码都将使用更新的值(取决于范围):

function () {
  if (xmlhttp.readyState == 4 && xmlhttp.status == 200)
  {
     document.getElementById("updateAll").innerHTML = xmlhttp.responseText; 
     window.change = 1;
  }
};

当然全局变量很糟糕,但这超出了这个答案的范围。