Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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
Php ajax按钮加载状态_Php_Javascript_Ajax - Fatal编程技术网

Php ajax按钮加载状态

Php ajax按钮加载状态,php,javascript,ajax,Php,Javascript,Ajax,我用互联网上的教程制作了这个小脚本。php函数调用javascript的次数和按钮(foreach)的次数一样多,现在我有三个$值是特定按钮的div名称(按钮存储在php数组中) 一切正常。。。除非我快速点击所有按钮,否则加载的gif将保持不变,javascript不会更改按钮状态。它从另一个php得到的响应是新的按钮状态和会话变量更改。会话变量已更改,但div不存在 所以,这里是我需要帮助的地方,我如何才能做到这一点,当我快速单击按钮时,div也会被更改 我的代码 function load_

我用互联网上的教程制作了这个小脚本。php函数调用javascript的次数和按钮(foreach)的次数一样多,现在我有三个$值是特定按钮的div名称(按钮存储在php数组中)

一切正常。。。除非我快速点击所有按钮,否则加载的gif将保持不变,javascript不会更改按钮状态。它从另一个php得到的响应是新的按钮状态和会话变量更改。会话变量已更改,但div不存在

所以,这里是我需要帮助的地方,我如何才能做到这一点,当我快速单击按钮时,div也会被更改

我的代码

function load_javascripts() {

    foreach ($GLOBALS["VARIABLES"]["button_list"] as $key => $value) {
        $scripts .= "

        function run_alias_button_".$value."(str)
        {
        document.getElementById('aliasbutton_".$value."').innerHTML='<img src=ajax_loader.gif>';
        if (str=='')
          {
          document.getElementById('aliasbutton_".$value."').innerHTML='';
          return;
          } 
        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('aliasbutton_".$value."').innerHTML=xmlhttp.responseText;
            }
          }
        xmlhttp.open('GET','?leht=alias_logimine&alias=".$value."',true);
        xmlhttp.send();
        }
        ";
    }
    return $scripts;
}
函数加载_javascripts(){
foreach($GLOBALS[“变量”][“按钮列表”]作为$key=>$value){
$scripts.=”
函数运行别名按钮“.$value.”(str)
{
document.getElementById('aliasbutton.'.$value.'')。innerHTML='';
如果(str='')
{
document.getElementById('aliasbutton.'.$value.'')。innerHTML='';
回来
} 
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=newActiveXObject('Microsoft.xmlhttp');
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById('aliasbutton.'.$value.'')。innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open('GET','?leht=alias_logimine&alias=“.$value.”,true);
xmlhttp.send();
}
";
}
返回$scripts;
}

Put
var xmlhttpPut
var xmlhttp只是一个提示。始终在“onreadystatechange”事件之前使用“打开”功能。你在firefox上使用may的方式是可行的,但IE不明白。像这样:

xmlhttp.open('GET','?leht=alias_logimine&alias=".$value."',true);
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById('aliasbutton_".$value."').innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.send();

只是一个提示。始终在“onreadystatechange”事件之前使用“打开”功能。你在firefox上使用may的方式是可行的,但IE不明白。像这样:

xmlhttp.open('GET','?leht=alias_logimine&alias=".$value."',true);
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById('aliasbutton_".$value."').innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.send();

考虑预加载您的图像。然后图像来自浏览器的缓存,我会使用像jQuery这样的javascript框架。非常容易学习,大量的例子和更快的开发…考虑一下预加载您的图像。然后图像来自浏览器的缓存,我会使用像jQuery这样的javascript框架。非常容易学习,有大量的示例和更快的开发。。。