Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Passaggio variabili con ajax a php e inserimento nel db

    Ciao ragazzi, sono costretto a chiedervi una mano in quanto sto cercando di implementare ad uno script Php la validazione ajax e il passaggio a php per l'inserimento dei dati nel db mysql. E' una funzione che credo possa servire a molti ed io sto cercando di realizzarla per creare un form di registrazione utenti senza ricaricare la pagina e che invii anche un email di conferma e attivazione.

    Allora:

    ho una pagina Php con il form da compilare [fin qui tutto semplice] e al suo interno richiamo Ajax e il file con il codice Targetcontactform.js:

    codice:
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> <script src="js/targetcontactform.js"></script>

    questa è il file Targetcontactform.js:
    [
    codice:
    $(document).ready(function() { 
    
     //al click sul bottone del form 
    $("#bottone-contact").click(function(){ 
    
    $(this).hide(); 
    $("[img]images/loader.gif[/img]").appendTo("#contact"); 
    var timer = 2000; 
    
    //associo variabili generali 
    var nome = $("#nome").val(); 
    var cognome = $("#cognome").val(); 
    var giorno = $("#giorno").val(); 
    var mese = $("#mese").val(); 
    var anno = $("#anno").val(); 
    var sito = $("#sito").val();
    var email = $("#email").val(); 
    var password = $("#password").val();
    var Npsw= $("#Npsw").val() 
    var informativa = $("#informativa").attr('checked');
    
     //pattern email var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; 
    
    if(!emailReg.test(email)) { 
    
    $("#bottone-contact").show(); 
    $("<div id='errori'></div>").appendTo("#contact").html("<span>Email scritta in modo non corretto.</span>").delay(2000).fadeOut(timer); 
    
    $(".loader").hide(); } else if(informativa != "checked"){ alert("Devi accettare l'informativa sulla privacy per continuare!"); $("#bottone-contact").show(); 
    
    $(".loader").hide(); } else if (nome == "" || cognome == "" || email == "" || password == "" ) { $("#bottone-contact").show(); 
    
    $("<div id='errori'></div>").appendTo("#contact").html("<span>E' necessario compilare tutti i campi.</span>").delay(2000).fadeOut(timer); 
    
    $(".loader").hide(); } 
    //se ci sono campi vuoti else { 
    
    //se sono stati compilati tutti i campi 
    
    //chiamata ajax 
    $.ajax({ type: "POST", url: "registrati/salva2.php", 
    
    //il form invia i dati all'engine 
    
    data: "nome=" + nome + "cognome=" + cognome + "giorno=" + giorno + "mese=" + mese + "anno=" + anno + "sito=" + sito + "email=" + email +"&password=" + password, 
    dataType: "html", 
    
    success: function(msg) { $(".loader").hide(); 
    
    $("<div id='risultato'></div>").appendTo("#contact").html("<span>Registrazione effettuata. Controlla la tua email.</span>").delay(3000).fadeOut(timer); 
    
    $("#bottone-contact").delay(2000).fadeIn(); }, error: function() { alert("Si e' verificato un errore imprevisto..."); } }); }
    //else controlli }); 
    //fine form });
    //Fine Dom


    e questa è la pagina PHP che dovrebbe ricevere i dati via Post, inserirli nel Db e inviare email di conferma:
    Codice PHP:
    <?php 

    ////////////////////ricevo il dato dal form///////////////////// 
    $nome $_POST["nome"]; 
    $cognome $_POST["cognome"]; 
    $giorno $_POST["giorno"]; 
    $mese $_POST["mese"]; 
    $anno $_POST["anno"]; 
    $sito $_POST["sito"]; 
    $email $_POST["email"]; 
    $Pswd $_POST["password"]; 
    $Npsw $_POST["Npws"]; 
    $risutente $_POST["calcolo"]; 

    ////////////////verifico che le variabili siano valorizzate////////////////// 
    if (isset($nome
    and isset(
    $cognome
    and isset(
    $telefono) ) { 

    //////////verifico che le variabili non siano vuote///////////////////////// 
    if( $nome != "" and $cognome != "" ){ 

    ////////////////verifico che $Sito sia scritto senza "http"e che $Nome e $Cognome siano stringhe di testo////////////// 

    if (substr($sito07) != "http://" 
    and is_string($nome) and is_string($cognome) ) { 

    ////////////////verifico la struttura del campo email////////////////////// 
    if( preg_match'/^[\w\.\-]+@\w+[\w\.\-]*?\.\w{1,4}$/'$email)) { 


    ///////////////verifico che siano compilati i campi psw e npsw e che siano uguali///////////////// 
    if (isset($Pswd) and isset($Npsw) and $Pswd != "" and $Npsw != "" and 
    $Pswd == $Npsw and strlen($Pswd) > ) { 

    ////////verifico che sul database non siano gia presenti i dati inseriti///////////////////////// include("../Connections/Registrazione.php"); 

    $db mysql_connect($db_host$db_user$db_password); if ($db == FALSE) die ("errore nella connessione al database. Prego verificare i parametri nel file config.inc.php"); mysql_select_db($db_name$db) or die ("Errore nella connessione al database. Prego verifcare i parametri nel file config.inc.php");


     
    //////////////////////////////////////////seleziono i dati sul database 

    $query "select * from Utenti where Email = '".$Email."' and Attivazione = 1 "$result mysql_query($query$db) or die("Errore nella query:".mysql_error()); 

    /////////////se i dati non sono presenti sul database proseguo con l'insert/////////////////
     
    if(mysql_num_rows($result) == 0) { 

    //////////inserisco i dati nel database//////////////////////////////////////// 
    $nome addslashes(stripslashes($nome)); 
    $cognome addslashes(stripslashes($cognome)); 
    $email addslashes(stripslashes($email)); 
    $giorno $_POST["giorno"]; 
    $mese $_POST["mese"]; 
    $anno $_POST["anno"]; 
    $sito addslashes(stripslashes($sito)); 
    $Attivazione "0"
    $Codicesicurezza $risutente

    $query "INSERT INTO Utenti (nome, cognome, giorno, mese, anno, telefono, email, Codicesicurezza, password, Npswd, Attivazione, Data ) VALUES ( '".$nome."', '".$cognome."', '".$giorno."', '".$mese."', '".$anno."', '".$telefono."', '".$email."', '".$Codicesicurezza."', '".$Pswd."', '".$Npsw."', '".$Attivazione."', NOW() )"

    $result mysql_query($query$db) or die("Errore nella query:".mysql_error()); echo 


    [b]ISCRIZIONE AVVENUTA:[/b]
     - 
     
     Abbiamo inviato all'indirizzo da te comunicato. una mail
     "



    ////////////scrivo il codice per mandare la mail all'utente////////////////////////// 

    if($result) { ini_set("SMTP","localhost"); 

    //imposta smtp di aruba $header = "From:  <noreply@aruba.it>\r\n"; 

    // modifica con l'indirizzo e mail del tuo sito // costruiamo le intestazioni specifiche per il formato HTML 

    $header .= "X-Sender: <noreply@aruba.it>\r\n";
    // Il mittente $header .= "X-Mailer: PHP/".phpversion(); $header .= "Return-Path: <noreply@aruba.it>\r\n"; 
    // Return-path $sitepath = "http:///"; 

    // modifica con il tuo sito $adminemail = 'info@al.it'; 

    // modifica con il tuo indirizzo email relativo al sito 

    $id mysql_insert_id(); $activatepath "public/attiva_iscrizione.php?Utente=$id&codice=$risutente&Pass=$Pswd";

     
    // attenzione. non modificare i parametri o modificarli una 

    // solo se si sicuri delle modifiche. lo script impostato per agire 

    // con questi parametri $subject = "Richiesta di iscrizione"; 

    $message "\n Benvenuto, $Nome $Cognome 
     
     Grazie per esserti iscritto! 
     
    "


    mail($Email$subject$message$header,"From:$adminemail \nX-Mailer: PHP/" phpversion()); echo "

    I dati sono stati salvati correttamente 
     Attendi il reindirizzamento alla home page"
    ; echo "<meta http-equiv=refresh content=30;url=http://www.sito.it>"; } else { echo "



    Alcuni dei dati da te inseriti non sono corretti. Verifica anche l'esattezza dell'indirizzo email"
    ; } 

    ////////invece se i dati sono presenti sul database termino lo script//////////////////////// 


    }else{ echo "[b]Controllo Dati:[/b]
     
     ATTENZIONE: Risulta gia esistente un account con la stessa email. Prego verificare i vostri dati.
     torna indietro alla pagina di registrazione
    "
    ; } 

    ///////////////se i campi password sono inizializzati in modo errato termino lo script///////// }else{ echo " [b]Controllo Dati:[/b]
     
    ATTENZIONEIl campo [b]Password[/b[b]Ridigita password[/bsono scritti in modo erratoMinimo 6 caratteri
     torna indietro alla pagina di registrazione
    "; } 

    //////////se 
    $Email scritto male termino lo script///////////////////// }else{ echo " [b]Controllo Dati:[/b]
     
    ATTENZIONEIl campo [b]Email[/bè scritto in modo errato.
     
    torna indietro alla pagina di registrazione
    "; } 

    //////////////se scritto con http termino lo script///////////////// }else{ echo " 
    [b]Controllo Dati:[/b]
     
    ATTENZIONEIl campo [b]sito[/bè scritto in modo errato.
     
    torna indietro alla pagina di registrazione
    "; } 


    ////////////se anche un solo campo non compilato chiudo lo script//////////// 

    }else{ echo " 
    [b]Controllo Dati:[/b]
     
    ATTENZIONEAlcuni campi obbligatori risultano vuoti.
     
    torna indietro alla pagina di registrazione
    "; } 

    ////////se non sono valorizzate termino lo script/////////////////////////// }else { echo " 
    [b]Controllo Dati:[/b]
     
    ATTENZIONEAlcuni campi obbligatori risultano vuoti.
     
    torna indietro alla pagina di registrazione
    "; } ?>


    Come vedete, il php fa anche lui dei controlli sul form. non so se sto sbagliando qualcosa, infono il file php da solo funziona ma al momento della registrazione mi rimanda in un'altra pagina. Io vorrei solo che non ricaricasse la pagina.
    Grazie a chiunque mi potrà dare una mano

  2. #2
    scusate ma mi ha dato problemi all'invio del messaggio e ne ho creati 2 uguali, non so come si cancellano!

  3. #3
    Provo a rendere più efficace la mia domanda:

    ho il codice PHP riportato sopra, che funziona perfettamente se il form al click del bottone rimanda al suo link. Come faccio a implementare ajax per far si che non ricarichi la pagina per l'inserimento dei dati nel db?

    Grazie a chiunque possa aiutarmi, sto leggendo di tutto, facendo 1000 prove ma non ne vengo a capo!

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    #bottone-contact è tipo submit o button?
    E metti un link alla pagina demo pubblica da testare e visionare meglio il tutto
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Originariamente inviato da cavicchiandrea
    #bottone-contact è tipo submit o button?
    E metti un link alla pagina demo pubblica da testare e visionare meglio il tutto

    Ciao e grazie.
    Il campo è di tipo "button"

    Il link alla pagina pubblica non credo serva a molto!

    in pratica la validazione funziona, se non inserisci bene i campi (tranne i campi password) ti restituisce l'errore. Ma se lo compili in modo corretto, parte il load ma non succede nulla. Non carica i dati nel db. Sarà sicuramente un problema tra il file .js e quello php ma non riesco a capire dove!

    se elimino il passaggio al file .js funziona tutto perfettamente ma alla fine ricarica la pagina per dare l'ok, e anche gli errori vengono visualizzati su pagina bianca, il che non è un gran vedere!

    Io vorrei che non ricaricasse la pagina o quanto meno, eliminando il file ajax... far mostrare gli errori nella stessa pagina senza ricaricarla!

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Fidati che il link serve spesso sono errori nel documento o lato server
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Ho inserito tutto quello che serve per potermi dare una mano. Il link non serve, quindi attendo qualcuno che ne capisca qualcosa. Tu ne capisci?

  8. #8
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Da firebug hai un problema (probabilmente ininfluente) sullo script di facebook
    L'URL inserito non è consentito dalla configurazione dell'applicazione.: Uno o più degli indirizzi inseriti non sono consentiti dalle impostazioni dell'applicazione. Deve corrispondere all'indirizzo della Pagina Principale o del Sito Web o il dominio deve essere un sottodominio di uno dei domini dell'applicazione.
    e un errore
    ReferenceError: event is not defined
    http://www.commusik.it/
    Line 418 (si riferisce allo script del tasto destro inutile)
    altro errore
    ReferenceError: Npsw is not defined
    http://www.commusik.it/js/targetcontactform.js
    Line 71 (Npsw non esiste esiste Pswd)
    Visto che invii tutti i campi del form puoi benissimo usare nomeform.serialize()
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  9. #9
    Originariamente inviato da cavicchiandrea
    Da firebug hai un problema (probabilmente ininfluente) sullo script di facebook
    e un errore
    ReferenceError: event is not defined
    http://www.commusik.it/
    Line 418 (si riferisce allo script del tasto destro inutile)
    altro errore
    ReferenceError: Npsw is not defined
    http://www.commusik.it/js/targetcontactform.js
    Line 71 (Npsw non esiste esiste Pswd)
    Visto che invii tutti i campi del form puoi benissimo usare nomeform.serialize()


    Ho provato anche con "serialize" :
    codice:
    $("#bottone-contact").click(function(){ 
    var dati = $("#contact").serialize(); 
    
    //recupera tutti i valori del form automaticamente 
    //form invio dati post ajax 
    //questo alert potete levarlo, serve solo per farvi capire come vengono passati i dati alert(dati); 
    
    //invio 
    $.ajax({ type: "POST", url: "pagina.php", 
    
    data: dati, dataType: "html", success: function(msg) { 
    $("#risultato").html(msg); }, error: function() { alert("Chiamata fallita, si prega di riprovare..."); } });
    //ajax });
    //bottone click
    ma stesso problema

  10. #10
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Non hai aggiornato la pagina online firebug da errori?
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

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 © 2025 vBulletin Solutions, Inc. All rights reserved.