Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    74

    non esegue sempre la chiamata al server

    Ciao a tutti, premetto che non conosco Ajax, il problema è il seguente:
    ho la necessità di inserire e visualizzare dei dati tramite php/mysql in tempo reale senza refresh della pagina.
    Ho scaricato uno script da internet che funziona benissimo per inserire i dati, ma da qualche problema per la
    visualizzazione. Infatti quando faccio un inserimento, sotto dovrebbe visualizzare la lista dei nominativi presenti nel db, a volte lo fa a volte non visualizza l'ultimo record (anche se nel db è stato inserito), dopo 2 o tre inserimenti successivi, finalmente li fa vedere tutti. Non capisco perché, posto il codice delle tre pagine.

    index.php
    codice HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <script type="text/javascript" src="jquery-1.6.2.min.js"></script>
    <script type="text/javascript"> 
    $(document).ready(function() { 
    
      //al click sul bottone del form 
      $("#bottone").click(function(){ 
    
        //associo variabili 
        var nome     = $("#nome").val(); 
        var cognome = $("#cognome").val();
        var pz         = $("#pz").val();     
    
      //chiamata ajax 
        $.ajax({ 
    
         //imposto il tipo di invio dati  
          type: "POST", 
    
          //Invio i dati alla pagina php 
          url: "risultato_aggiunta.php", 
    
          //Dati da salvare 
          data: "nome=" + nome + "&cognome=" + cognome + "&pz=" + pz, 
          dataType: "html", 
         
        }); 
      }); 
    }); 
    
    
    
     $(document).ready(function() {
     $("#bottone").click(function() {
      $("#dati").load("mostra.php", {
      });
     });
    });  
    
    
    </script>  
    <body>
    
    
    <form name="modulo"> 
        <p>Nome</p> 
        <p><input type="text" name="nome" id="nome"> 
        <p>Cognome</p> 
         <input type="text" name="cognome" id="cognome"> 
         <p>pz</p> 
         <input type="text" name="pz" id="pz"> 
         <br /><br />
        <input type="button" id="bottone" value="Invia i dati"> 
        <input type="reset" value="nuovo">
    
    <div id="dati">
    </div> 
    </form> 
    
    </body>
    </html>
    risultato_aggiunta.php ( è la pagina che inserisce i dati tramite php nel db mysql )
    Codice PHP:
    <?php 
    $host 
    'localhost'
    $user 'root'
    $pass 'password'

    $db mysql_connect($host,$user,$pass); 
    mysql_select_db('prova'); 

    $cognome $_POST['cognome'];  
    $nome $_POST['nome'];  
    $pz $_POST['pz'];  

    $query "INSERT IGNORE into dati(cognome,nome,pz) values('$cognome','$nome','$pz')"
    $resultmysql_query($query,$db); 
    mysql_close($db);  

    ?>
    mostra.php (la pagina che mostra il contenuto del db nel <div id="dati"> presente nella index )
    Codice PHP:
    <?php 

    $host 
    'localhost'
    $user 'root'
    $pass 'password'


    $db mysql_connect($host,$user,$pass); 
    mysql_select_db('prova'$db); 

    $query=" SELECT * FROM dati "

    $result mysql_query($query); 

    while(
    $row mysql_fetch_array($result)) 
     { 
      
     
    $id     $row['id']; 
     
    $nome     $row['nome']; 
     
    $cognome $row['cognome']; 
      
     echo 
    $id.' '.$nome.' '.$cognome.'<br />'
      
     } 

    ?>
    spero di essere stato chiaro e vi ringrazio in anticipo
    "Gli eroi sono uomini comuni che compiono azioni straordinarie in momenti straordinari" - ( Dal film U-571 )

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    potrebbe essere un problema di cache appendi l'ora
    var dateTime = new Date()
    var timestamp = dateTime.getTime();
    $("#dati").load("mostra.php?rndate="+timestamp);
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    74
    Ciao Andrea, intanto grazie per aver risposto.
    come devo integrare il codice che mi hai scritto? perdonami ma non conosco javascript
    "Gli eroi sono uomini comuni che compiono azioni straordinarie in momenti straordinari" - ( Dal film U-571 )

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    attuale
    codice:
    $(document).ready(function() {
     $("#bottone").click(function() {
      $("#dati").load("mostra.php", {
      });
     });
    });
    nuova
    codice:
    $(document).ready(function() {
     $("#bottone").click(function() {
     var dateTime = new Date()
     var timestamp = dateTime.getTime();
     $("#dati").load("mostra.php?rndate="+timestamp);
     });
    });
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    74
    Grazie, ho provato ma non va, da sempre lo stesso problema

    inserisco la prima voce e la visualizza.
    inserisco la seconda voce e la visualizza.
    inserisco la terza voce e non la visualizza(ma nel db è presente).
    inserisco la quarta voce e visualizza sia la terza che la quarta.

    se riprovo magari lo fa dopo il secondo inserimento oppure dopo il decimo, non so se può essere utile, ma per svuotare il campo dove inserisco i dati uso un bottone <button type="reset"> <img src="../images/nuovo.png" title="nuovo" /></button>
    qualche altra idea? intanto grazie tante
    "Gli eroi sono uomini comuni che compiono azioni straordinarie in momenti straordinari" - ( Dal film U-571 )

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2005
    Messaggi
    74
    Ciao credo di aver risolto, ho eliminato la funzione:

    codice HTML:
    $(document).ready(function() {
     $("#bottone").click(function() {
      $("#dati").load("mostra.php", {
      });
     });
    });

    e ho inserito la stringa:


    codice HTML:
    $("#dati").load("mostra.php", {
      });
    direttamente nel codice javascript che inserisce i dati, quindi diventa:

    codice HTML:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <script type="text/javascript" src="jquery-1.6.2.min.js"></script>
    <script type="text/javascript"> 
    $(document).ready(function() { 
    
      //al click sul bottone del form 
      $("#bottone").click(function(){ 
    
        //associo variabili 
        var nome     = $("#nome").val(); 
        var cognome = $("#cognome").val();
        var pz         = $("#pz").val();     
    
      //chiamata ajax 
        $.ajax({ 
    
         //imposto il tipo di invio dati  
          type: "POST", 
    
          //Invio i dati alla pagina php 
          url: "risultato_aggiunta.php", 
    
          //Dati da salvare 
          data: "nome=" + nome + "&cognome=" + cognome + "&pz=" + pz, 
          dataType: "html", 
         
        }); 
    
              alert("Articolo inserito"); //messaggio articolo salvato
      
              $("#dati").load("mostra.php", {
               });  
    
      }); 
    });
    sto al 20 inserimento e non ho problemi per ora grazie tante e dimmi ovviamente se non è la soluzione corretta
    Ultima modifica di jotaro; 29-08-2014 a 16:43
    "Gli eroi sono uomini comuni che compiono azioni straordinarie in momenti straordinari" - ( Dal film U-571 )

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.