Aggiornare dato sul db con php

Malware

Utente Attivo
19 Lug 2012
112
0
0
Salve a tutti

Sto cercando di capire come funziona ajax :crying:

Ho una pagina, game.php?view_details=1

Qui ho alcune informazioni, e un link che mi fa comparire in un div:

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

<form>
<br><br>Nuovo nome polis: <br><input type="text" name="nuovo_nome" id="nuovo_nome" maxlength="15">
<br><br>
<input type="submit" id="bottone" value="Modifica">
</form>

Io vorrei che quando premo il "bottone" il dato "nuovo_nome" aggiornasse quello presente nel database, e venisse mostrato quello aggiornato, senza ricaricare quindi pagina.
Bell'effetto da vedere ma che non riesco a fare.
C'è una discussione simile da cui ho preso spunto, ma non sono riuscito.

File ajax.js:

Codice:
// SCRIPT AJAX  


$(document).ready(function() {  

  //al click sul bottone del form  
  $("#bottone").click(function(){  

    //associo variabili  
    var nome = $("#nuovo_nome").val();  

  //chiamata ajax  
    $.ajax({  

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

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

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

      //visualizzazione errori/ok  
      success: function(msg)  
      {   
	    document.getElementById("nome_polis").innerHTML=nome;   //mostro il nuovo nome
      },  
      error: function()  
      {  
        //errore? ricarico la pagina
		document.location="game.php?func=view_details=1";
      }  
    });  
  });  
});

Mentre questo è il file ajax.php:

PHP:
<?php

require("config.php"); //dati per connessione al db

$nuovo_nome=$_POST['nuovo_nome'];
//vari controlli sul nome...

$query="UPDATE citta SET nome = '$nuovo_nome' WHERE idcitta = ".$_SESSION["city_da_vedere"];
mysql_query($query) or die (mysql_error());


?>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
non vedo
HTML:
<div id="nome_polis"></div>
ci deve essere se no lo script non sa dove farti vedere il risultato

in piu devi cercare di non inviare il submit
potresti per esempio cambiare il type da submit a button
Codice:
<input type="button" id="bottone" value="Modifica">

per il resto mi sembra a posto , dovrebbe funzionarti con queste due modifiche

EDIT:
cambia la funzione in caso di successo cosi
Codice:
//visualizzazione errori/ok  
                success: function(response){
                            $("#nome_polis").html(response);
                        }
ti mostra nel divi tutto cio che manderai in output nella pagina ajax.php
 
Ultima modifica:

Malware

Utente Attivo
19 Lug 2012
112
0
0
HTML:
<div id="nome_polis"></div>

Questo c'è nel codice della pagina che non ho incollato.

Comunque eccolo:
PHP:
echo '
	<table id="info_municipio_css" align="center">
		<tr>
			<td id="info_municipio_top_td_css" colspan="2">
			Informazioni città
			</td>
		</tr>
		
		<tr>
			<td id="info_municipio_td_1_css">
			Nome: 
			</td>
			<td id="info_municipio_td_2_css"><div id="nome_polis">
			'.$nome.'
			</div></td>
		</tr>
		
		<tr>
			<td id="info_municipio_td_1_css">
			Dimensione: 
			</td>
			<td id="info_municipio_td_2_css">
			'.$dimensione.'
			</td>
		</tr>
		
	</table>
';

Ho cambiato il successo del file ajax.js:

Codice:
// SCRIPT AJAX  


$(document).ready(function() {  

  //al click sul bottone del form  
  $("#bottone").click(function(){  

    //associo variabili  
    var nome = $("#nuovo_nome").val();  

  //chiamata ajax  
    $.ajax({  

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

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

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

      //visualizzazione errori/ok  
       success: function(response){
                            $("#nome_polis").html(response);
                        },  
      error: function()  
      {  
        //errore? ricarico la pagina
		document.location="game.php?func=view_details=1";
      }  
    });  
  });  
});

Aggiungo un po' altro in modo da capire meglio come funziona la cosa...le due funzioni javascript (file game.js):

Codice:
function menu_left_costru1() { //municipio
document.getElementById("menu_left_box").innerHTML='<div class="link2" onclick="mostra_form_nuovo_nome_polis();"><img src="images/game/small/el.png"> <a href="#">Modifica nome citt&agrave;</a></div>';
}


function mostra_form_nuovo_nome_polis() {
document.getElementById("view_details_css").innerHTML+='<script src="http://code.jquery.com/jquery-latest.js"></script><script src="script/ajax.js"></script><form><br><br>Nuovo nome polis:<br><input type="text" name="nuovo_nome" id="nuovo_nome" maxlength="15"><br><input type="button" id="bottone" value="Modifica"></form>';
}

File php sempre uguale ma...nessun segno di vita quando premo il button.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Hai messo l'echo nella pagina ajax.php?

PHP:
<?php
// probabile che ci vada anche il session_start() provalo con e senza

require("config.php"); //dati per connessione al db

$nuovo_nome=$_POST['nuovo_nome'];
//vari controlli sul nome...

$query="UPDATE citta SET nome = '$nuovo_nome' WHERE idcitta = ".$_SESSION["city_da_vedere"];
mysql_query($query) or die (mysql_error());

// manda in output
echo $nuovo_nome;

?>
 

Malware

Utente Attivo
19 Lug 2012
112
0
0
Inserito l'echo, ma nessun segno di vita.
Nè sul db nè nel div.
Il session_start(); l'ho inserito già perché uso le sessioni.

Ora sto smanettando un po'...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
io l'ho provato cosi e funziona
HTML:
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script>
    
    $(document).ready(function() {  

        //al click sul bottone del form  
        $("#bottone").click(function(){  

            //associo variabili  
            var nome = $("#nuovo_nome").val();  

            //chiamata ajax  
            $.ajax({  

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

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

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

                //visualizzazione errori/ok  
                success: function(response){
                            $("#nome_polis").html(response);
                        },  
                error: function()  
                {  
                    //errore? ricarico la pagina
                    document.location="game.php?func=view_details=1";
                }  
            });  
        });  
    });
</script>

<form>
    <br><br>Nuovo nome polis: <br><input type="text" name="nuovo_nome" id="nuovo_nome" maxlength="15">
    <br><br>
    <input type="button" id="bottone" value="Modifica">
</form>
<div id="nome_polis"></div>
ajax.php
PHP:
<?php
// probabile che ci vada anche il session_start() provalo con e senza

//require("config.php"); //dati per connessione al db

$nuovo_nome=$_POST['nuovo_nome'];
//vari controlli sul nome...

//$query="UPDATE citta SET nome = '$nuovo_nome' WHERE idcitta = ".$_SESSION["city_da_vedere"];
//mysql_query($query) or die (mysql_error());

// manda in output
echo $nuovo_nome;

?>
 

Malware

Utente Attivo
19 Lug 2012
112
0
0
Allora.
Ho inserito il form manualmente senza js prima che esca la tabella (che contiene il div dove mettere il nome).
Il problema era quello.

Facendo questo con javascript però non funziona...

Codice:
function mostra_form_nuovo_nome_polis() {
copia_div=document.getElementById("view_details_css").innerHTML;
document.getElementById("view_details_css").innerHTML='<script src="http://code.jquery.com/jquery-latest.js"></script><script language=Javascript src="script/ajax.js"></script><br><br>Nuovo nome polis:<br><input type="text" id="nuovo_nome" name="nuovo_nome" maxlength="15"><br><input type="button" id="bottone" value="Modifica"><br><br>'+copia_div;
}

Mi sa che a questo punto il form lo faccio comparire con php, cliccando all'indirizzo game.php?view_form=nome_polis...
 

Malware

Utente Attivo
19 Lug 2012
112
0
0
Ho risolto in un'altro modo.

Ora ho inserito il form dentro il div "show_edit_nome_polis"



PHP:
function mostra_form_nuovo_nome_polis() {
	if (document.getElementById('show_edit_nome_polis').style.display=="block") {
	document.getElementById('show_edit_nome_polis').style.display="none";
	}else{
	document.getElementById('show_edit_nome_polis').style.display="block";
	}
}



Comunque per la parte ajax va tutto in modo eccellente.
Come sempre siete i migliori.
Thanks :fonzie:
 
Discussioni simili
Autore Titolo Forum Risposte Data
R Aggiornare record mysql con Ajax, jQuery e php Ajax 2
M Aggiornare stesso campo in due tabelle PHP 0
Alex_70 Aggiornare campo da un altro campo PHP 16
M Aggiornare simultaneamente i campi di due tabelle collegate con id PHP 4
L aggiornare 2 campi di una tabella insieme PHP 6
Leshabituelles Non riesco ad aggiornare PHP PHP 0
M [Javascript] Aggiornare like totali dopo click Javascript 0
S aggiornare valore di un elemento xml con php PHP 8
P [PHP] Intercettare ed aggiornare campi di un database PHP 5
C [PHP] scrivere o aggiornare record in tabella PHP 7
T Aggiornare una tabella db richiamando da file php PHP 3
Q Problema su come far aggiornare i campi su un database Mysql PHP 17
M [Javascript] [PHP] aggiornare pagina ogni ora Javascript 2
B [Javascript] Cambiare classe ed aggiornare relativi eventi Javascript 3
S Aggiornare una tabella db richiamando da file php PHP 3
S [PHP]Aggiornare pagina in maniera trasparente... PHP 3
M [PHP] Aggiornare i dati dei record selezionati PHP 3
X come aggiornare codice php? PHP 5
ste80 [PHP] cancellare/aggiornare record DB PHP 24
WebDr [ASP] Aggiornare una pagina in un div da un altro div su pagina diversa Classic ASP 3
C Aggiornare App Html5 HTML e CSS 2
D [Javascript] aggiornare numero caratteri se campo già popolato Javascript 5
S [Javascript] Aggiornare solo un DIV una sola volta con un click di un bottone Javascript 9
Metazoo Recuperare variabile php da javascript senza aggiornare pagina PHP 5
Magenta [WordPress] Dati ftp per aggiornare in locale WordPress 10
giancadeejay Aggiornare tabella db con php PHP 10
giancadeejay [PHP] Aggiornare un valore del database tramite form PHP 26
giancadeejay [PHP] Aggiornare DB tramite UPLOAD file .csv PHP 39
L [PHP] Sommare campi e aggiornare tabella PHP 14
F Aggiornare marker su mappa google con una funzione ajax richiamata al cambio di una select Ajax 2
N eseguire pagina php senza aggiornare la pagina Ajax 3
M Aggiornare Plesk e PHP su VPS Linux OVH Server Dedicati e VPS 3
P Aggiornare Tabella con form ma senza Mysql HTML e CSS 0
P Aggiornare tabella tramite form PHP 17
garimpeiro Errore di sintassi si tenta di aggiornare file in formato dbf Programmazione 2
L Script per aggiornare pagina html Javascript 2
G Aggiornare immagine caricata nel DB Classic ASP 1
K mysql aggiornare campo Database 4
Marco_88 Aggiornare elemento DOM jQuery 9
J Aggiornare 2 tabelle PHP 3
R Aggiornare WP e riuscire poi a tornare indietro. WordPress 24
I come aggiornare il codice jQuery 1
P aggiornare div con un clic senza reload Ajax 2
M Aggiornare grafico con i dati inseriti in tabella PHP 0
A aggiornare pagina1 da link di pag2 Javascript 1
M Aggiornare valori in mysql (classifica) PHP 8
K Aggiornare solo una parte di Layout Sviluppo app per Android 0
G Aggiornare colonna tabella automaticamente in MysQl PHP 2
C Aggiornare casella di testo MS Access 0
S Aggiornare campo in base a timestamp meno recente fra piu tabelle PHP 2

Discussioni simili