non esegue sempre la chiamata al server

amhal

Utente Attivo
17 Feb 2011
89
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
felino Mac OS e Client Mail: Stato non in linea Mac e Software 1
I nome utente non esiste nel database PHP 1
M Drag and Drop non capisco le sequenze... Javascript 1
L Suggerimento Pagespeed per non vedenti HTML e CSS 0
F comando di inclusione file audio in I-Pad non funziona HTML e CSS 1
M Immagini non usate WordPress 0
B Non riesco a trovare i cognomi con i caratteri speciali in Access (Microsoft 365) MS Access 0
G Numero zero null non deve visualizzare nulla PHP 0
F Paypal _xclick IPN non risponde PHP 1
R Variabile non risconosciuta dentro una funzione PHP 1
C ACCESS Aprire maschera se valore non presente in una combo MS Access 7
E Alert non viene mostrato PHP 1
felino Hardisk WD SATA 1TB 3.5" non si avvia! Hardware 4
K Scrip non funzionante Javascript 1
R jquery che cambia css di un elemento non mi funziona sulla pagina caricata da ajax Ajax 5
zorro CREATE TABLE non funziona PHP 6
L tipo boolean non funzionante su mariadb (mysql). E codice php 7.4. PHP 0
Sevenjeak Php8 non carica estenzioni PHP 0
R query DELETE non cancella i record PHP 1
otto9due Input text: accetta solo numeri e non può essere vuoto. Javascript 9
G Non vedo frecce su forme Photoshop 2
G Il mio sito dopo aver abilitato l'ssl non visualizza le immagini con indirizzi senza ssl HTML e CSS 0
P jquery refresh div non funziona Javascript 0
N Problema SEO "L'URL non si trova su Google" SEO e Posizionamento 4
S Certificato SSL non funzionante Domini 0
zorro modulo di registrazione: funziona ma non sempre PHP 2
D Form contatti non funzionante HTML e CSS 0
MarcoGrazia Trovare record nel database partendo da id non sequenziali PHP 6
M Non ho rinnovato il mio sito su Aruba... Domini 1
T IP INFO NON FUNZIONA PHP 0
Shyson Google search non trova il mio sito SEO e Posizionamento 1
E Estrarre dati da doppia tabella, banale ma non sempre PHP 1
P Data scraping in PHP non funziona PHP 4
otto9due $_FILE non passa i dati dal form PHP 1
keyascii Non è mai troppo tardi Presentati al Forum 0
N dati tabella non presi PHP 1
P Pagina modifica record che non funziona PHP 0
Shyson AUTO_INCREMENT non si aggiorna MySQL 2
Shyson Codice wp-login non funziona PHP 2
S WORDPRESS NON FA INSTALLARE PIU NULLA WordPress 9
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 2

Discussioni simili