Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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_Html_Ajax - Fatal编程技术网

Php 在ajax加载时创建加载图像

Php 在ajax加载时创建加载图像,php,javascript,html,ajax,Php,Javascript,Html,Ajax,这是我的密码。我试图插入一个图像来显示ajax正在加载,但我就是做不好;我尝试了很多可能的方法,但都不管用。有什么建议吗 ajaxRequest.onreadystatechange = function(){ if(ajaxRequest.readyState == 4){ var ajaxDisplay = document.getElementById('main_result'); ajaxDisplay.innerHTML = ajaxReque

这是我的密码。我试图插入一个图像来显示ajax正在加载,但我就是做不好;我尝试了很多可能的方法,但都不管用。有什么建议吗

ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState == 4){
        var ajaxDisplay = document.getElementById('main_result');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
    }
}
$("#main_result").empty().html('<img src="loading.gif" />');

var category = document.getElementById('category').value;
var brand = document.getElementById('brand').value;
var item = document.getElementById('item').value;
var queryString = "&category=" + category + "&brand="+ brand +"&item="+ item;
ajaxRequest.open("GET", "main_search_special.php?section=special" + queryString, true);
ajaxRequest.send(null);
ajaxRequest.onreadystatechange=function(){
if(ajaxRequest.readyState==4){
var ajaxDisplay=document.getElementById('main_result');
ajaxDisplay.innerHTML=ajaxRequest.responseText;
}
}
$(“#主结果”).empty().html(“”);
var category=document.getElementById('category')。值;
var brand=document.getElementById('brand')。值;
var item=document.getElementById('item')。值;
var queryString=“&category=“+category+”&brand=“+brand+”&item=“+item;
打开(“GET”,“main\u search\u special.php?section=special”+queryString,true);
ajaxRequest.send(空);

发送请求之前,只需将图像添加到显示区域即可。请求完成时,结果将覆盖它

...
var ajaxDisplay = document.getElementById("main_result");
ajaxDisplay.innerHTML = "<img src='loading.gif' />"
ajaxRequest.send(null);
。。。
var ajaxDisplay=document.getElementById(“主结果”);
ajaxDisplay.innerHTML=“”
ajaxRequest.send(空);

发送请求之前,只需将图像添加到显示区域即可。请求完成时,结果将覆盖它

...
var ajaxDisplay = document.getElementById("main_result");
ajaxDisplay.innerHTML = "<img src='loading.gif' />"
ajaxRequest.send(null);
。。。
var ajaxDisplay=document.getElementById(“主结果”);
ajaxDisplay.innerHTML=“”
ajaxRequest.send(空);

你可以用两种不同的方法来解决这个问题,你可以

  • 在发送请求时预加载映像并创建元素,完成后销毁
  • 将其与文档一起创建,然后将其隐藏,直到发送请求,然后在完成后再次隐藏
  • 两者的组合:在javascript中预加载和创建元素,然后在每次请求/完成时隐藏/显示元素
  • 当请求很少被发送时,
    #1
    可能是最受欢迎的,因为它不会干扰文档的加载,而是在完成所有其他操作后加载。由于创建/销毁元素比简单地隐藏/显示元素需要更多的处理时间,因此不推荐使用这种方法

    频繁发送请求时,最好使用
    #2
    ,因为您将经常使用加载程序映像,因此无需创建/销毁它,只需从一开始就可以使用它。我推荐这种方法

    如果您想安全起见,最好使用
    #3
    。这在页面加载完成之前不会加载图像,并且只需要很少的处理时间

    |代码 HTML


    |代码 HTML


    |代码 HTML

    杂项 我建议跟踪返回的状态。当请求失败时,您的代码将返回一个错误,因为您没有处理它。确保请求成功并处理错误

    你也应该考虑使用,如果你有特殊字符的数据,比如空格等。

    var category = document.getElementById('category').value;
    var brand = document.getElementById('brand').value;
    var item = document.getElementById('item').value;
    
    var url = "main_search_special.php"
    var parameters = "section=special&category=" + encodeURIComponent(category) + "&brand=" + encodeURIComponent(brand) + "&item=" + encodeURIComponent(item);
    
    ajaxRequest.open("GET", url+"?"+parameters, true);
    
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4 && http.status == 200){
            var ajaxDisplay = document.getElementById('main_result');
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }else{
            console.log("Request for \""+url+ "\" failed.");
        }
    }
    
    ajaxRequest.send();
    

    你可以用两种不同的方法来解决这个问题,你可以

  • 在发送请求时预加载映像并创建元素,完成后销毁
  • 将其与文档一起创建,然后将其隐藏,直到发送请求,然后在完成后再次隐藏
  • 两者的组合:在javascript中预加载和创建元素,然后在每次请求/完成时隐藏/显示元素
  • 当请求很少被发送时,
    #1
    可能是最受欢迎的,因为它不会干扰文档的加载,而是在完成所有其他操作后加载。由于创建/销毁元素比简单地隐藏/显示元素需要更多的处理时间,因此不推荐使用这种方法

    频繁发送请求时,最好使用
    #2
    ,因为您将经常使用加载程序映像,因此无需创建/销毁它,只需从一开始就可以使用它。我推荐这种方法

    如果您想安全起见,最好使用
    #3
    。这在页面加载完成之前不会加载图像,并且只需要很少的处理时间

    |代码 HTML


    |代码 HTML


    |代码 HTML

    杂项 我建议跟踪返回的状态。当请求失败时,您的代码将返回一个错误,因为您没有处理它。确保请求成功并处理错误

    你也应该考虑使用,如果你有特殊字符的数据,比如空格等。

    var category = document.getElementById('category').value;
    var brand = document.getElementById('brand').value;
    var item = document.getElementById('item').value;
    
    var url = "main_search_special.php"
    var parameters = "section=special&category=" + encodeURIComponent(category) + "&brand=" + encodeURIComponent(brand) + "&item=" + encodeURIComponent(item);
    
    ajaxRequest.open("GET", url+"?"+parameters, true);
    
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4 && http.status == 200){
            var ajaxDisplay = document.getElementById('main_result');
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }else{
            console.log("Request for \""+url+ "\" failed.");
        }
    }
    
    ajaxRequest.send();
    

    我建议将return操作放到它自己的函数中,使它看起来更干净一些

    但要添加图像,您只需执行以下操作:

    在发送之前(基本上是函数中的任何地方),创建image元素并附加到html中您喜欢的任何元素


    当ajax调用返回时,删除image元素

    我建议将return操作放到它自己的函数中,使它看起来更干净一些

    但要添加图像,您只需执行以下操作:

    在发送之前(基本上是函数中的任何地方),创建image元素并附加到html中您喜欢的任何元素

    当ajax调用返回时,删除image元素

    这就是你能做的- 在您最喜欢的位置设置一个图像。将其可见性设置为隐藏。在调用php之前,将其可见性设置为可见,然后再次在php文件响应后,可以将图像可见性设置为隐藏。 这是你可以做到这一点的方法之一,还有其他方法

    search.onclick = function()
    {
      var ajaxRequest;
      document.getElementById("image_loading").style.visibility = "visible";
      ajaxRequest.onreadystatechange = function(){
      if(ajaxRequest.readyState == 4){
        document.getElementById("image_loading").style.visibility = "hidden";                
        var ajaxDisplay = document.getElementById('main_result');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
      }
    }
      $("#main_result").empty().html('<img src="loading.gif" />');
      var category = document.getElementById('category').value;
      var brand = document.getElementById('brand').value;
      var item = document.getElementById('item').value;
      var queryString = "&category=" + category + "&brand="+ brand +"&item="+ item;
      ajaxRequest.open("GET", "main_search_special.php?section=special" + queryString, true);
      ajaxRequest.send(null);
    }
    
    search.onclick=function()
    {
    var ajaxRequest;
    document.getElementById(“图像加载”).style.visibility=“可见”;
    ajaxRequest.onreadystatechange=函数(){
    if(ajaxRequest.readyState==4){
    document.getElementById(“图像加载”).style.visibility=“隐藏”;
    var ajaxDisplay=document.getElementById('main_result');
    ajaxDisplay.innerHTML=ajaxRequest.responseText;
    
    <div id='content'></div>
    
    function CreateLoader(){
        var img = document.createElement("img");
        img.id = "ajaxloader";
        img.src = "loader.gif";
        img.alt = "";
    
        document.getElementById("content").appendChild(img);
    
        img.show = function(){ img.style.display = "block"; }
        img.hide = function(){ img.style.display = "none"; }
    
        img.hide();        
    
        return img;        
    }
    
    var eLoader = CreateLoader();
    
    var http = new XMLHttpRequest();
    var url = "thepage.php";
    var params = "whatever=you&want=in+here";
    
    http.open("POST", url, true);
    
    http.onreadystatechange = function() {
        if(http.readyState == 4 && http.status == 200) {
            eLoader.hide();
            document.getElementById('content').innerHTML = http.responseText
        }
    }
    
    function BeginLoading(){
        eLoader.show();
        http.send(params);
    }
    
    BeginLoading();
    
    var category = document.getElementById('category').value;
    var brand = document.getElementById('brand').value;
    var item = document.getElementById('item').value;
    
    var url = "main_search_special.php"
    var parameters = "section=special&category=" + encodeURIComponent(category) + "&brand=" + encodeURIComponent(brand) + "&item=" + encodeURIComponent(item);
    
    ajaxRequest.open("GET", url+"?"+parameters, true);
    
    ajaxRequest.onreadystatechange = function(){
        if(ajaxRequest.readyState == 4 && http.status == 200){
            var ajaxDisplay = document.getElementById('main_result');
            ajaxDisplay.innerHTML = ajaxRequest.responseText;
        }else{
            console.log("Request for \""+url+ "\" failed.");
        }
    }
    
    ajaxRequest.send();
    
    search.onclick = function()
    {
      var ajaxRequest;
      document.getElementById("image_loading").style.visibility = "visible";
      ajaxRequest.onreadystatechange = function(){
      if(ajaxRequest.readyState == 4){
        document.getElementById("image_loading").style.visibility = "hidden";                
        var ajaxDisplay = document.getElementById('main_result');
        ajaxDisplay.innerHTML = ajaxRequest.responseText;
      }
    }
      $("#main_result").empty().html('<img src="loading.gif" />');
      var category = document.getElementById('category').value;
      var brand = document.getElementById('brand').value;
      var item = document.getElementById('item').value;
      var queryString = "&category=" + category + "&brand="+ brand +"&item="+ item;
      ajaxRequest.open("GET", "main_search_special.php?section=special" + queryString, true);
      ajaxRequest.send(null);
    }