non esegue sempre la chiamata al server

amhal

Utente Attivo
17 Feb 2011
87
1
8
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

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 )

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')";
$result= mysql_query($query,$db);
mysql_close($db); 

?>


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

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
:fonzie:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, probabilmente hai già risolto ma posto comunque una soluzione
Non ha senso ripetere due volte i metodi ready() e click()
Nel codice javascript che hai postato c'è una virgola in più.
Puoi utilizzare il metodo done() accodato alla chiamata ajax per eseguire del codice dopo che la chiamata è andata a buon fine.
Ho aggiunto la chiamata a mostra.php 2 volte : al caricamento della pagina ( cosi vedi subito i dati caricati) e in coda alla chiamata per l'inserimento
Codice:
<script type="text/javascript"> 
    $(document).ready(function() {
        $("#dati").load("mostra.php");
        //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"
     
            }).done(function(){
                $("#dati").load("mostra.php");
            }); 
        }); 
    });
</script>
 
Discussioni simili
Autore Titolo Forum Risposte Data
W [C#] Il componente "WebBrowser" non mi esegue css e javascript .NET Framework 0
W [PHP] Non esegue il parsing su un dato sito e negli altri si... PHP 0
localhost.nicola [Javascript] JS non esegue funzioni su bottoni stampati da chiamata AJAX Javascript 1
S [PHP] Perchè non mi esegue la query? PHP 11
P Problema non mi esegue la ricerca dati PHP 23
G Non esegue gli script on line Javascript 3
S AJAX e DIV non mi esegue le funzioni js Ajax 0
S WORDPRESS NON FA INSTALLARE PIU NULLA WordPress 8
Shyson Non mi fa accedere al sito WordPress 12
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
R INSERT INTO tabella non funziona Classic ASP 1
A Problema, non so, di scale() o transform, oppure altro? HTML e CSS 0
felino Conversione da MPG a MP4: audio non sincronizzato Windows e Software 1
F Telecamere Wi-Fi non si connettono A nvr IP Cam e Videosorveglianza 0
G Finestra di dialogo che non si apre - programma NUENDO Windows e Software 0
L php mysql non salva solo id PHP 21
D Pagina non trovata Wordpress WordPress 7
S connesso, internet non disponibile ( con extebder tp-link850) Reti LAN e Wireless 0
F Script java elenco alfabetico non funziona Javascript 3
F Script non funzionante. Devo elencare in ordine alfabetico un elenco di nominativi, ma lo script non Javascript 2
L Estrazione dati casuali non doppioni MySQL 1
napuleone non si chiude il thead e non si apre il tbody Javascript 0
napuleone non si aggiorna textarea in tempo reale Javascript 3
D Modem Asus non trasmette ogni 3/4 giorni Reti LAN e Wireless 2
M non static method cannot be referenced from a static context Java 1
napuleone Con le date il codice da di matto o forse non è così Javascript 6
M Questa pagina non carica correttamente Google Maps: aiuto!! HTML e CSS 1
M "Internet non disponibile" Reti LAN e Wireless 0
L Non vedo pc in rete Reti LAN e Wireless 0
M Numero random non ripetitivo Java 2
G pc desktop non si connette all'hotspot wifi Reti LAN e Wireless 0
L Non riesco a riprodurre uno sfondo Photoshop 0
N Server mysql non raggiungibile da connessione esterna MySQL 1
R Select concatenata che non funziona la seconda volta Ajax 3
L non duplicare dati in stato "aggiornamento" PHP 6
R [Visual Studio Community] Non trovo il Progetto di Setup .NET Framework 0
zorro file PDF non visualizzo niente PHP 9
D modificare questo codice per inserimento in text e non in tabella jQuery 1
A variabile non riconosciuta PHP 0
A Copertura: indicizzata, non inviata nella mappa del sito XML 1
A funzione iconv () non mi funziona PHP 4
D File pdf che non si aprono .... PHP 1
MarcoGrazia ON DUPLICATE KEY ma in realtà non UPDATE mai PHP 17
R Non riesco a rinnovare l'immagine di sfondo PHP 1
G non riesco a capire quale sia l'errore [SQL] MySQL 2
R Non riesco a cambiare l'immagine di sfondo PHP 4
MarcoGrazia Valori di ritorno json via ajax non visti. jQuery 1
W Non fa l'upload PHP 0
W Parametro non corretto. (code: 87) PHP 4
MarcoGrazia Se non sai se riceverai da GET o da POST, puoi verificarlo e far scegliere allo script. Snippet PHP 0

Discussioni simili