Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    Il mio script in Ajax per funzionare deve usare la direttiva location.reload (con IE e Mozilla son dolori)

    Ho uno script in Ajax che per funzionare deve fare un refresh della pagina. Se uso location.reload() lo script funziona ma alcuni browser come Explorer e Mozilla mi danno questo avviso fastidiosissimo:

    "Per visualizzare nuovamente la pagina Web, è necessario rinviare tramite Internet Explorer le informazioni inviate in precedenza. Se si sta effettuando un acquisto, etc etc.... " con i bottoni "riprova" e "annulla".

    codice:
    $(document).ready(function() { 
         $('#uploadForm').submit(function(event) {
                event.preventDefault();
                $('#loader-icon').show();
                $(this).ajaxSubmit({
                    beforeSubmit: function() {
                      $("#progress-bar").width('0%');
                    },
                    uploadProgress: function (event, position, total, percentComplete){
                        $("#progress-bar").width(percentComplete + '%');
                        $("#progress-bar").html('<div id="progress-status">' + percentComplete +' %</div>')
                    },
                    success:function (){
                        $('#loader-icon').hide();
                        location.reload(); // esegue un refresh della pagina
                    },
                    resetForm: true,
                }); 
                return false;
        });
    });
    Devo aggiornare la pagina per aggiornare questo script in PHP:

    codice:
    <p class="avviso">
            <?php
            if(isset($_SESSION['avviso_upload'])) {
                echo $_SESSION['avviso_upload'];
                unset($_SESSION['avviso_upload']);
                }
            ?>
        </p>
    Ultima modifica di giannino1995; 24-04-2018 a 15:22
    Più pratica in futuro...

  2. #2
    Ho risolto lo script usando target ma resta comunque un problema di fondo: con Ajax si può decidere di aggiornare solo un particolare tag della pagina generato dinamicamente da PHP?

    Se il contenuto di un <div> è prodotto da uno script in PHP (esempio: i file presenti in una cartella sul server) come posso con JS dire al server di ricontrollare il contenuto di quel <div>?

    Il mio script funziona in questo modo:
    1.uno script in PHP mostra a video i file presenti in una cartella A sul server;
    2.un form mi permette di caricare un file sul server dentro A con Ajax (voglio una barra che mi aggiorna secondo per secondo sullo stato di avanzamento del mio upload);
    3.al termine del caricamento faccio un refresh della pagina per far rigirare lo script del punto 1 (in A è stato aggiunto un file quindi devo aggiornare l’html);

    location.reload() non da problemi, lo script funziona egregiamente però con IE e Mozilla genera l’alert che ho scritto sopra.

    Avete capito il problema di fondo oppure no?

    Se uso questo codice non risolvo:
    codice:
    $(".contenitore_generale").reload();
    $(".contenitore_generale") è il div che contiene i nomi dei file presenti nella cartella A.
    Ultima modifica di giannino1995; 25-04-2018 a 00:17
    Più pratica in futuro...

  3. #3
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Ho risolto lo script usando target ma resta comunque un problema di fondo: con Ajax si può decidere di aggiornare solo un particolare tag della pagina generato dinamicamente da PHP?
    Si è obbiettivo principale di ajax

    Se il contenuto di un <div> è prodotto da uno script in PHP (esempio: i file presenti in una cartella sul server) come posso con JS dire al server di ricontrollare il contenuto di quel <div>?
    Con ajax

    Il mio script funziona in questo modo:
    1.uno script in PHP mostra a video i file presenti in una cartella A sul server;
    invece di mettere uno script php nella pagina crei una pagina che rileva i file della cartella sul server poi allo onload richiami quella pagina $(".contenitore_generale").load("tuapaginafileserv er.php")
    2.un form mi permette di caricare un file sul server dentro A con Ajax (voglio una barra che mi aggiorna secondo per secondo sullo stato di avanzamento del mio upload);
    Qui non so che dire spero che funzioni tutto
    3.al termine del caricamento faccio un refresh della pagina per far rigirare lo script del punto 1 (in A è stato aggiunto un file quindi devo aggiornare l’html);
    Al termine del caricamento non esegui il reload ma richiami nuovamente la pagina tuapaginafileserver.php

    location.reload() non da problemi, lo script funziona egregiamente però con IE e Mozilla genera l’alert che ho scritto sopra.

    Avete capito il problema di fondo oppure no?
    Credo di si
    Se uso questo codice non risolvo:
    codice:
    $(".contenitore_generale").reload();
    $(".contenitore_generale") è il div che contiene i nomi dei file presenti nella cartella A.
    Mi meraviglierei del contrario i div della pagina non hanno eventi o supportano eventi js
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  4. #4
    Ho provato a fare così ma non funziona:
    codice:
    success: function (){ // quando l'upload finisce ajaxSubmit() chiama success
    $(".file_su_server").load("pagina_protetta/php/file_su_server.php");
    },
    codice:
    <div class="file_su_server">
    <?php include("pagina_protetta/php/file_su_server.php"); ?>
    </div>
    Più pratica in futuro...

  5. #5
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Non funziona... interessante ma poco utile per risolvere non trovi?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  6. #6
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Non funziona... interessante ma poco utile per risolvere non trovi?
    Non so che altro dirti nel senso che il codice non fa nulla. I due script sono identici:

    codice:
    success: function (){ // quando l'upload finisce ajaxSubmit() chiama success
    $(".file_su_server").load("pagina_protetta/php/file_su_server.php");
    },
    codice:
    success: function (){ // quando l'upload finisce ajaxSubmit() chiama success
    //$(".file_su_server").load("pagina_protetta/php/file_su_server.php");
    },
    Più pratica in futuro...

  7. #7
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Pagina demo online, così da farsi un idea di come sunziona lo script grazie.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,359
    Hai provato una cosa del genere.

    codice:
    <script>
    function pippo() {
      // qui fai una chiamata asincrona ad una pagina che ti ritorna la lista dei file e riempe il div
    }
    </script>
    ...
    
    $(document).ready(function() { 
         $('#uploadForm').submit(function(event) {
                event.preventDefault();
                $('#loader-icon').show();
                $(this).ajaxSubmit({
                    beforeSubmit: function() {
                      $("#progress-bar").width('0%');
                    },
                    uploadProgress: function (event, position, total, percentComplete){
                        $("#progress-bar").width(percentComplete + '%');
                        $("#progress-bar").html('<div id="progress-status">' + percentComplete +' %</div>')
                    },
                    success:function (){
                        $('#loader-icon').hide();
                        pippo(); 
                    },
                    resetForm: true,
                }); 
                return false;
        });
    });
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  9. #9
    Se intendi questo si:
    codice:
    function pippo() {
      $(".file_su_server").load("pagina_protetta/php/file_su_server.php");
    }
    ma non produce nulla, come non esistesse.
    Più pratica in futuro...

  10. #10
    Ho risolto con un altro codice.
    codice:
    $(".contenitore_generale").load("pagina_protetta.php .contenitore_generale>*");
    L'unica cosa che non capisco è perché questo non produce nulla:
    codice:
    $(".contenitore_generale").load("pagina_protetta.php .contenitore_generale");
    A cosa serve il segno di maggiore e l'asterisco?!?!
    Più pratica in futuro...

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.