Visualizzare dati db senza aggiornare pagina

sixdas

Utente Attivo
25 Giu 2012
70
0
6
Salve, vorrei un vostro aiuto, in pratica vorrei capire come fare per salvare dei dati in un db e poi visualizzarli nella stessa pagina, senza doverla aggiornare. Al momento riesco solo a salvarli, ma non a visualizzarli. Vi metto un esempio di come salvo i dati:
PHP:
//FORM 
<form name="modulo"> 
    <p>Nome</p> 
    <p><input type="text" name="nome" id="nome"> 
    <p>Cognome</p> 
     <input type="text" name="cognome" id="cognome"> 
    <input type="button" id="bottone" value="Invia i dati"> 
</form> 

<div id="risultato"></div> 




// SCRIPT AJAX 

<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(); 

  //chiamata ajax 
    $.ajax({ 

     //imposto il tipo di invio dati  
      type: "POST", 

      //Invio i dati alla pagina php 
      url: "salva.php", 

      //Dati da salvare 
      data: "nome=" + nome + "&cognome=" + cognome, 
      dataType: "html", 

      //visualizzazione errori/ok 
      success: function(msg) 
      { 
        $("#risultato").html(msg);  
      }, 
      error: function() 
      { 
        alert("Chiamata fallita, si prega di riprovare...");  
      } 
    }); 
  }); 
}); 
</script>

salva.php

PHP:
<?php  
include("connessione_db.php"); 
include("config.php"); 
mysql_select_db("$db_name",$connessione); //seleziono il database e mi connetto  

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

$sql = "INSERT INTO tabella SET  
nome = '$nome', cognome = '$cognome', 
 if (@mysql_query($sql)) { echo '<p>Dati salvati correttamente</p>'; }  
else { echo '<p>Si e verificato un errore ' . mysql_error() .'</p>'; } ?>

Ora, nella pagina index, sotto il form, vorrei anche una tabella con tutti i dati gia inseriti, e vorrei che quando l'utente inserire i suoi dati, dopo gli compaiono sotto senza dover aggiornare la pagina. Come fare?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
nella pagina del form ti manca il collegamento alla libreria Jquery

HTML:
<script src="http://code.jquery.com/jquery-latest.js"></script>

nella pagina salva.php c'era un errrore di sintassi
codice corretto
PHP:
<?php

include("connessione_db.php");
include("config.php");
mysql_select_db("$db_name", $connessione); //seleziono il database e mi connetto  

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

$sql = "INSERT INTO tabella SET nome = '$nome', cognome = '$cognome'";

if (mysql_query($sql)) {
    echo '<p>Dati salvati correttamente</p>';
} else {
    echo '<p>Si e verificato un errore ' . mysql_error() . '</p>';
}
?>

per visualizzare i dati ti basta fare una SELECT dopo la INSERT nella pagina salva.php ed elencare i risultati
 

sixdas

Utente Attivo
25 Giu 2012
70
0
6
Ciao, il codice che ho postato sopra era incompleto, era solo per far capire cosa faccio. Infatti il file salva, e un po diverso ci sono i vari controlli etc...

Io ho inserito la select al posto di.
PHP:
echo '<p>Dati salvati correttamente</p>';

E funziona come vorrei, ma ci sono due cose, se l'utente visita la pagina senza inserire nulla non vede i dati già presenti, inoltre se lui inserisce i dati vede anche quelli precedente, ma se aggiorna la pagina scopare tutto. non so se ho reso l'idea, qui ho messo online lo script per fare una prova...link
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non metterla nella IF la SELECT

mettila in fondo cosi verra eseguita sempre
 
Ultima modifica:

sixdas

Utente Attivo
25 Giu 2012
70
0
6
Fatto, ma il risultato non cambia,
Ti posto tutto il file salva.php
PHP:
<?php
include_once ('config.php');

// Variabili Globali
	$date = (date("d/m/Y H:i"));


// Query MySql di Inserimento
	// recupero i campi di tipo "stringa"
	$nome       = trim($_POST['nome']);
	$cognome    = trim($_POST['cognome']);
	$nota       = trim($_POST['nota']);

	// verifico se devo eliminare gli slash inseriti automaticamente da PHP
	if(get_magic_quotes_gpc())
	{
		$nome       = stripslashes($nome);
		$cognome    = stripslashes($cognome);
		$nota       = stripslashes($nota);
	}

	$nome    	 = mysql_real_escape_string($nome);
	$cognome     = mysql_real_escape_string($cognome);
	$nota		 = mysql_real_escape_string($nota);

$sql = "INSERT INTO test (nome, cognome, nota, data) VALUES('$nome','$cognome','$nota','$date')";

// controllo l'esito
if (mysql_query($sql)) {
echo '<p>Dati salvati correttamente</p>';
} else {
    echo '<p>Si e verificato un errore ' . mysql_error() . '</p>';
}

$ricevuta = mysql_query("SELECT * FROM test ");

while ($row = mysql_fetch_assoc($ricevuta)) {
	echo $row['nome'] ,'&nbsp;-&nbsp;', $row['cognome'] ,'&nbsp;-&nbsp;', $row['nota'] , "<br>";
}
?>
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
visita la pagina senza inserire nulla non vede i dati già presenti
questo mi sembra risolto, a parte che inserisci i campi vuoti e dovresti cercare di evitarlo
ma se aggiorna la pagina scopare tutto
perche la chiamata ajax l'hai messa sul click del bottone
Codice:
$("#bottone").click(function(){

mi sembra giusto cosi
 

sixdas

Utente Attivo
25 Giu 2012
70
0
6
questo mi sembra risolto, a parte che inserisci i campi vuoti e dovresti cercare di evitarlo
No, io vorrei che appena si apra la pagina, gia visualizzo i dati presenti, poi se inserisco altri li visualizza insieme a gli altri senza aggiornare. Per i campi nulli, infatti non ci avevo pensato adesso sistemo.

perche la chiamata ajax l'hai messa sul click del bottone
Codice:
$("#bottone").click(function(){

mi sembra giusto cosi

E come faccio ad evitarlo?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
E come faccio ad evitarlo?
prova a toglierlo
HTML:
<script type="text/javascript"> 
    $(document).ready(function() { 
        //associo variabili 
        var nome = $("#nome").val(); 
        var cognome = $("#cognome").val(); 

        //chiamata ajax 
        $.ajax({ 

            //imposto il tipo di invio dati  
            type: "POST", 

            //Invio i dati alla pagina php 
            url: "salva.php", 

            //Dati da salvare 
            data: "nome=" + nome + "&cognome=" + cognome, 
            dataType: "html", 

            //visualizzazione errori/ok 
            success: function(msg) 
            { 
                $("#risultato").html(msg);  
            }, 
            error: function() 
            { 
                alert("Chiamata fallita, si prega di riprovare...");  
            } 
        });       
    }); 
</script>
 

sixdas

Utente Attivo
25 Giu 2012
70
0
6
prova a toglierlo
HTML:
<script type="text/javascript"> 
    $(document).ready(function() { 
        //associo variabili 
        var nome = $("#nome").val(); 
        var cognome = $("#cognome").val(); 

        //chiamata ajax 
        $.ajax({ 

            //imposto il tipo di invio dati  
            type: "POST", 

            //Invio i dati alla pagina php 
            url: "salva.php", 

            //Dati da salvare 
            data: "nome=" + nome + "&cognome=" + cognome, 
            dataType: "html", 

            //visualizzazione errori/ok 
            success: function(msg) 
            { 
                $("#risultato").html(msg);  
            }, 
            error: function() 
            { 
                alert("Chiamata fallita, si prega di riprovare...");  
            } 
        });       
    }); 
</script>

Non va, appena apro la pagina mi da l'errore dei campi vuoti.

Forse e proprio come ho strutturato lo script che non va bene? purtroppo sto iniziando adesso con ajax :(
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
allora puoi provare cosi:

rimetti l'onclick

e fai una query anche nella prima pagina e mostri il risultato nel div della chiamata ajax

PHP:
<div id="risultato">
<?php
// fai la select e mostra il risultato
?>
</div>

dopo la chiamata ajax verrà sovrascritto con i nuovi dati
 

sixdas

Utente Attivo
25 Giu 2012
70
0
6
allora puoi provare cosi:

rimetti l'onclick

e fai una query anche nella prima pagina e mostri il risultato nel div della chiamata ajax

PHP:
<div id="risultato">
<?php
// fai la select e mostra il risultato
?>
</div>

dopo la chiamata ajax verrà sovrascritto con i nuovi dati

Ok grazie, adesso funziona come dovrebbe :rolleyes:
 
Discussioni simili
Autore Titolo Forum Risposte Data
D [WordPress] come fare per estrarre dati da un db MySQL tramite una form e visualizzare il risultato WordPress 0
P non riesco a visualizzare i dati dopo aver inserto l'id PHP 36
D Visualizzare dati da DB mysql PHP 6
S visualizzare dati da postmeta WordPress 1
M visualizzare dati in tabella presi da un database e ordinarli per argomento e nome PHP 7
A Visualizzare dati da mysql a seconda dell id PHP 10
L visualizzare dati da mysql a seconda dell'ID PHP 1
A Visualizzare i dati di una pagina PHP in HTMl HTML e CSS 13
O [help] estrarre e visualizzare dati da mysql con php a oggetti PHP 6
G Leggere e visualizzare dati da mysql PHP 8
F visualizzare dati utente in base a nome e password PHP 6
C visualizzare dati PHP 6
SolidSnake4 come visualizzare dati da una cartella PHP 1
D Visualizzare dati mdb in ASP ( Pole ) Classic ASP 8
T Visualizzare dati di un form HTML e CSS 1
H problema a visualizzare i dati del db Classic ASP 2
C far visualizzare in html dei dati inseriti in txt box PHP 7
I visualizzare lista utenti registrati PHP 1
N php problemi a visualizzare video PHP 3
P come posso visualizzare l'nvr online IP Cam e Videosorveglianza 1
K Visualizzare del html responsive in una Webview Sviluppo app per Android 0
M Visualizzare ultima data registrata MS Access 2
G Numero zero null non deve visualizzare nulla PHP 0
D visualizzare solo foto filtrate jQuery 1
M Visualizzare nuove domande in base a risposta precedente PHP 0
N Non Autorizzato. Dovresti rimuovere il parametro customize_messenger_channel per visualizzare l'anteprima in frontend. WordPress 1
M visualizzare ip cam in windows IP Cam e Videosorveglianza 0
W visualizzare solo file html e sottocartelle di una cartella PHP 1
napuleone visualizzare il codice senza usare gli & HTML e CSS 1
Y Come caricare e visualizzare un'immagine PHP 0
M Visualizzare file PDF con link preso dal DB PHP 0
Alex_70 Visualizzare 2 bandiere PHP 6
Alex_70 Visualizzare anteprima foto in dropdown PHP 2
L Visualizzare tabella all'interno finestra modal PHP 4
P Visual Studio VB.NET Visualizzare un messaggio alla scadenza. .NET Framework 0
J [PHP] Visualizzare risultato query stessa pagina PHP 3
B visualizzare una sola riga Database 3
Alex_70 [PHP] Visualizzare foto tramite select PHP 0
K [ASP] Visualizzare nome del file selezionato Classic ASP 3
M [PHP] Visualizzare un array partendo dal numero 1 e non 0 PHP 5
L [PHP] Visualizzare utente dopo login PHP 0
L [PHP] Visualizzare se una pagina è pingata PHP 1
M [PHP] Visualizzare nell'alert il calcolo PHP 4
L come visualizzare array di oggetti php PHP 9
S [PHP] visualizzare commento su un prodotto precedentemente selezionato PHP 2
V [Javascript] Visualizzare o nascondere div figlio Javascript 4
W [PHP] Visualizzare errori su Statements in MySQLi PHP 3
S [javascript] visualizzare/nascondere div Javascript 3
felino [Javascript] [jQuery] Slick Carousel: visualizzare una porzione dell'immagine successiva Javascript 0
W [Javascript] Visualizzare l'href di un link nascosto Javascript 0

Discussioni simili