Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407

    Please wait con AJAX e PHP

    Ciao a tutti.

    Non riesco a far funzionare il classico "please wait" con ajax + php.

    Non capisco perchè il "please wait" non si mantiene per il tempo che ho previsto in go_to_sleep.php.

    Ecco i codici, questa è la pagina index.htm:

    codice:
    <html>
    <head>
    
      <script type="text/javascript">
     
        var xml_http_obj = false;
     
        if (window.XMLHttpRequest){
          //Firefox, safari etc
          xml_http_obj = new XMLHttpRequest();
        }else if(window.ActiveXObject){
          //Microsoft IE
          xml_http_obj = new ActiveXObject("Microsoft.XMLHTTP");
        }
     
        function get_data(url,wait_div_id){
     
          if (xml_http_obj){
     
            xml_http_obj.open("GET",url,true);
     
            xml_http_obj.onreadystatechange = function(){
     
              if (xml_http_obj.readyState == 4 && xml_http_obj.status == 200){
     	    document.getElementById(wait_div_id).style.visibility="hidden";
              }else{
    	    document.getElementById(wait_div_id).style.visibility="visible";
              }
            }
     
            xml_http_obj.send(null);
          }
     
     
        }
      </script>
     
      <style>
        div#wait{
          background-color:white;
          position:absolute;
          top:240px;
          left:360px;
          width:400px;
          height:50px;
          visibility:hidden;
          border: 0px;
          padding:0px;
        }
      </style>
     
    </script>
    </head>
     
    <body id="body">
     
      <H1>Please Wait AJAX </H1>
      
      <form action="http://www.yahoo.com" method="post" onSubmit="get_data('go_to_sleep.php','wait')">
     
      <div id="wait" >
        [img]wait.gif[/img]Please wait ...
      </div>
    
    <input type="submit" value="Search">  
      </form>    
    
    </body>
    </html>
    go_to_sleep.php:
    codice:
    <?php sleep(5);?>
    Che sbaglio?
    Grazie

  2. #2
    Ciao,

    non credo decisamente sia un problema di php, soprattutto per l'esiguità di codice. Ti sposto nella sezione Javascript dove sapranno aiutarti meglio.

  3. #3
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    sbaglio o invii comunque il form in maniera tradizionale?
    se non ritorni false all' onsubmit invii il form

  4. #4
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da Xinod
    sbaglio o invii comunque il form in maniera tradizionale?
    se non ritorni false all' onsubmit invii il form
    Perdonami non ho capito...

  5. #5
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    codice:
    function tuaFunzione(bla){
      ...
      return false; // = non vuoi inviare il form
    }
    ...
    <form onsubmit="return tuaFunzione('blablabla')">

  6. #6
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da Xinod
    codice:
    function tuaFunzione(bla){
      ...
      return false; // = non vuoi inviare il form
    }
    ...
    <form onsubmit="return tuaFunzione('blablabla')">
    Ok, ma così non si sposta più su http://www.yahoo.com...

    codice:
    <html>
    <head>
    
      <script type="text/javascript">
     
        var xml_http_obj = false;
     
        if (window.XMLHttpRequest){
          //Firefox, safari etc
          xml_http_obj = new XMLHttpRequest();
        }else if(window.ActiveXObject){
          //Microsoft IE
          xml_http_obj = new ActiveXObject("Microsoft.XMLHTTP");
        }
     
        function get_data(url,wait_div_id){
     
          if (xml_http_obj){
     
            xml_http_obj.open("GET",url,true);
     
            xml_http_obj.onreadystatechange = function(){
     
              if (xml_http_obj.readyState == 4 && xml_http_obj.status == 200){
     	    document.getElementById(wait_div_id).style.visibility="hidden";
              }else{
    	    document.getElementById(wait_div_id).style.visibility="visible";
              }
            }
     
            xml_http_obj.send(null);
          }
     
          return false;
        }
      </script>
     
      <style>
        div#wait{
          background-color:white;
          position:absolute;
          top:240px;
          left:360px;
          width:400px;
          height:50px;
          visibility:hidden;
          border: 0px;
          padding:0px;
        }
      </style>
     
    </script>
    </head>
     
    <body id="body">
     
      <H1>Please Wait AJAX </H1>
      
      <form action="http://www.yahoo.com" method="post" onSubmit="return get_data('go_to_sleep.php','wait')">
     
      <div id="wait" >
        [img]wait.gif[/img]Please wait ...
      </div>
    
    <input type="submit" value="Search">  
      </form>    
    
    </body>
    </html>

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ma vuoi eseguire questa richiesta asincrona o vuoi andare a www.yahoo.com?
    le due cose contemporaneamente non puoi farle: se invii il form non dai il tempo di eseguire qualsiasi cosa
    quindi per primo non devi inviare il form

  8. #8
    Utente di HTML.it L'avatar di ubbicom
    Registrato dal
    Mar 2004
    Messaggi
    1,407
    Originariamente inviato da Xinod
    ma vuoi eseguire questa richiesta asincrona o vuoi andare a www.yahoo.com?
    le due cose contemporaneamente non puoi farle: se invii il form non dai il tempo di eseguire qualsiasi cosa
    quindi per primo non devi inviare il form
    Vorrei solamente fare in modo che quando si richiama una pagina php che processa molti dati mentre si carica si visualizzase il messaggio "please wait"...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.