Ciao, ho un overlay fatto con jquery in cui c'è un form per la registrazione di un utente alla newsletter di un sito
che dovrebbe inserire i dati in un database e inviare un'email di conferma,
ma il problema non è la parte javascript ma quella php; infatti una volta compilato il form premendo il pulsante di submit
l'overlay scompare senza dare nessun messaggio e non inserisce i dati nel database nè invia l'email.
Mi potete aiutare?
Questo è lo script:
che dovrebbe inserire i dati in un database e inviare un'email di conferma,
ma il problema non è la parte javascript ma quella php; infatti una volta compilato il form premendo il pulsante di submit
l'overlay scompare senza dare nessun messaggio e non inserisce i dati nel database nè invia l'email.
Mi potete aiutare?
Questo è lo script:
PHP:
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="jquery-impromptu.2.7.min.js"></script>
<script type="text/javascript" src="fastinit.js"></script>
<script type="text/javascript">
function editUser(id){
var user = $('#userid'+id)
var fname = user.find('.fname').text();
var lname = user.find('.lname').text();
var txt = '<div style="border: solid; width: 390px; font-size: 14px; color: black;"><div align="center">Iscriviti e parteciperai all\'estrazione</div><div align="center">dell\'EdiTest Esercizi</div></div><img src="editest.jpg" align="right" width="150" height="230">'+ '<br><br>' +
'<div style="border: solid; width: 390px; font-size: 14px; color: black;"><form method="post" action=""><div class="field"><label for="editfname">Nome</label><input type="text" id="editfname" name="nome" /></div><div class="field"><label for="editfname">Cognome</label><input type="text" id="editfname" name="cognome" /></div><div class="field"><label for="editfname">Email </label><input type="text" id="editfname" name="email" /></div>'+
'<br><input type=\'checkbox\' name=\'privacy\' value=\'1\' checked /><a href=\'paginaprivacy.htm\' target=\'_blank\' title=\'Documento privacy\'><font size=\'1\' color=\'black\'>ho letto ed accettato l\'informativa per la tutela della privacy</font></a></div>'+'<br><div style="font-size: 14px; color: black;">L\'estrazione avrà luogo il 31/08/09</div>'+'<br><br><div align="center"> <input type="submit" name="submit" value="Registrati"> <input type="reset" name="reset" value="Cancella"></div></form>'
+'<?php
include "config.php";
//Connetti al database
$db = mysql_connect($dbhost, $dbuser, $dbpasswd)
or die ("Errore nella connessione. Verificare i parametri");
$table = mysql_select_db($dbname, $db)
or die ("Errore nella selezione del database");
if(isset($_POST['submit'])) {
$nome = $_POST['nome'];
$cognome = $_POST['cognome'];
$email = $_POST['email'];
$privacy = $_POST['privacy'];
if($privacy != '1'){
echo "Devi accettare l\'informativa per la tutela della privacy";
}
else{
// query d'inserimento
$sql = "INSERT INTO registrazione_newsletter (nome, cognome, email, data_iscrizione)
VALUES ('$nome', '$cognome', '$email', '" . date("d/m/Y") . "')";
$res = mysql_query($sql) or die("<br />Errore Numero: ".mysql_errno() ."<br />Descrizione: ". mysql_error()."<hr />");
// messaggio di conferma
echo "Grazie per esserti registrato.\nTi è stata spedita un\'email di conferma all\'iscrizione della newsletter.";
// email per la conferma
// intestazioni
$headers = "From: [email][email protected][/email]\nreply-To: ".$email." noreply\r\n";
$subject = "Iscrizione newsletter";
//corpo del messaggio
$messaggio = "Grazie per esserti iscritto alla newsletter di TestMedicina.com:\n\n";
$messaggio .= "Per confermare l\'iscrizione clicca sul seguente link:\n";
$messaggio .= "http://www.testmedicina.com/conferma_registrazione.php\n";
// invio dell'email
mail($email, stripslashes($subject), stripslashes($messaggio), $headers);
} } ?>';
$.prompt(txt,{
buttons:{},
submit: function(v,m,f){
//this is simple pre submit validation, the submit function
//return true to proceed to the callback, or false to take
//no further action, the prompt will stay open.
var flag = true;
if (v) {
if ($.trim(f.editfname) == '') {
m.find('#editfname').addClass('error');
flag = false;
}
else m.find('#editfname').removeClass('error');
if ($.trim(f.editlname) == '') {
m.find('#editlname').addClass('error');
flag = false;
}
else m.find('#editlname').removeClass('error');
}
return flag;
},
callback: function(v,m,f){
if(v){
//Here is where you would do an ajax post to edit the user
//also you might want to print out true/false from your .php
//file and verify it has been removed before removing from the
//html. if false dont remove, $promt() the error.
//$.post('Senzatitolo-1.php',{userfname:f.editfname,userlname:f.editlname}, callback:function(data){
// if(data == 'true'){
user.find('.fname').text(f.editfname);
user.find('.lname').text(f.editlname);
// }else{ $.prompt('An Error Occured while editing this user'); }
//});
}
else{}
}
});
}
</script>
<script type="text/javascript">
FastInit.addOnLoad(function(){editUser(1)});
</script>
</head>
<body>
</body>
</html>