Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Risposte lato server con Tecnologia AJAX

    Ho un form che usa AJAX con Bootstrap, tanto per intederci la stessa tecnologia usata in questa pagina http://tutsme-webdesign.info/tutoria...al_remote.html

    Ha funzionato bene (forse un anno o più) fino a qualche settimana fa, quando mi sono accorto che compilando i campi del modulo form al primo accesso ottieni la corrispondente risposta lato server, ma se cambi i parametri dei campi al secondo SUBMIT la risposta è la stessa del primo accesso, come se venisse memorizzata in "cache" e senza interpellare nuovamente il server. Cosa potrebbe essere accaduto?

  2. #2
    Utente di HTML.it L'avatar di vic53
    Registrato dal
    Oct 2010
    residenza
    Fonte Nuova (Roma)
    Messaggi
    588
    dove sta ajax?
    Vic53

  3. #3
    Facendo ricerche ho trovato altri utenti con analogo problema (bootstrap 3 cache problem). Si suggerisce un codice simile a questo:

    codice:
    $('body').on('click', '.modal-toggle', function (event) {
                event.preventDefault();
                $('.modal-content').empty();
                $('#myModal')
                    .removeData('bs.modal')
                    .modal({remote: $(this).attr('href') });
            });
    Solo che quel "onclick" proprio nella prima parte permette di distruggere (in un certo qual senso) la "cache" dal secondo click e NON al caricamento della pagina. Già è qualcosa comunque, ma continuo a cercare soluzioni.

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,505
    rel posta il TUO codice.
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    codice:
    <!DOCTYPE html>
    <html>
      <head>
        <title>Bootstrap version 3.1 Modal with remote content</title>
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
     
        <!-- Bootstrap core CSS -->
        <link href="http://www.taxxi.it/dev/home/extend/ajax/libs/twitter-bootstrap/3.1.0/css/bootstrap.css" rel="stylesheet" media="screen">
     
        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
          <script src="http://www.taxxi.it/dev/home/extend/ajax/libs/html5shiv/3.6.2/html5shiv.js"></script>
          <script src="http://www.taxxi.it/dev/home/extend/ajax/libs/respond.js/1.2.0/respond.js"></script>
        <![endif]-->
        <script>
     
     function randNum(min, max) {
        var m=min;
        var n=max;
        var r=m+Math.round(Math.random()*n); return(r); 
    }
     
    function CreateXmlHttpReq2(handler) {
        var xmlhttp = null;
        try {
            xmlhttp = new XMLHttpRequest();
        } catch(e) {
            try {
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e) {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
        }
        xmlhttp.onreadystatechange = handler;
        return xmlhttp;
    }
    
    function myHandlerMinute() {
        if (myRequestMinute.readyState == 4 && myRequestMinute.status == 200) {
            var allMinute = myRequestMinute.responseText;
            var viewMinute = document.getElementById("risultato");
            viewMinute.innerHTML = allMinute;
    	        //alert(''+allMinute+'');
        }
    }
    
    function codeAddress() {
    	var rand = randNum(73754,257329065);
       
        var address = 'Italia, Napoli, '+document.getElementById("address").value;
        var city = 'Napoli';
        var mail = document.getElementById("mail").value;
        myRequestMinute = CreateXmlHttpReq2(myHandlerMinute);
        myRequestMinute.open("GET","remote.php?rand="+rand+"&address="+address+", "+city+"&mail="+mail+"");
        myRequestMinute.send(null);
    }
    </script>
    <style>#myModal .modal-dialog {
     
    width:60%;
    
    }</style>
      </head>
      <body>
    
    <!-- Bootstrap trigger to open modal -->
    
    <form action="" method="post" class="modal-boby">
     <fieldset class="form-group">
        <label for="exampleInputEmail1">Email address</label>
        <input type="mail" id="mail" placeholder="Enter email">
        <small class="text-muted">We'll never share your email with anyone else.</small>
      </fieldset>
    <label>Indirizzo del Cliente</label><input id="address" type="textbox" value="" size="30" style="height:30px; width:426px; font-weight:bold; font-size:16pt;"><div style="border:0px solid red;"><input type="button" id="posClient" data-toggle="modal" class="btn btn-info" href="remote.php" data-target="#myModal" onclick="codeAddress()" onSubmit="return false" value="invia dati!"/><!--<input type="button" id="posClient" value="invia dati" onclick="codeAddress()" onSubmit="return false" style="height:36px;width:146px; margin-top:0px;">--></div></form>
     
    <!-- Modal -->
    <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content" id="risultato">
            </div> <!-- /.modal-content -->
        </div> <!-- /.modal-dialog -->
    </div> <!-- /.modal -->
        <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
        <script src="http://www.taxxi.it/dev/home/extend/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
        <!-- Include all compiled plugins (below), or include individual files as needed -->
        <script src="http://www.taxxi.it/dev/home/extend/ajax/libs/twitter-bootstrap/3.1.0/js/bootstrap.min.js"></script>
      </body>
    </html>

  6. #6
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,505
    lato js non ci sono anomalie. devi vedere lato server come generi la risposta.
    ps usa jquery e soprattutto on usare più onclick
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  7. #7
    Quote Originariamente inviata da ciro78 Visualizza il messaggio
    lato js non ci sono anomalie. devi vedere lato server come generi la risposta.
    ps usa jquery e soprattutto on usare più onclick
    OT
    scusa la curiosità, in che senso non usare più onclick???

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,505
    l'attributo onclick del tag.

    oggi è preferibile usare i listner sia con jquery mediante il metodo on che in puro js
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9
    ok perfetto, grazie!

Tag per questa discussione

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 © 2024 vBulletin Solutions, Inc. All rights reserved.