Salve a tutti, ringrazio in anticipo a chiunque mi aiuti.
In passato mi è capitato di dover inviare dei form via Ajax con JQuery e non ho mai avuto problemi, in questi 2 giorni sto impazzendo perché questo form non ne vuol sapere di essere inviato via Ajax e mi ritrovo il browser che punta alla pagina di action del form, mentre io non voglio che faccia un refresh a meno che l'utente non abbia disabilitato javascript nel browser.
Questo è il form html:
codice:
<form action="php/insert-new.php" id="send-single-mail" method="POST">
Destinatario:
AMMINISTRATORI
<input type="hidden" name="dest" id="dest" value="amministratore" />
Oggetto:
<input id="ogg" type="text" name="ogg" />
Messaggio:
<textarea name="content" id="mex"></textarea>
<input id="submit-single" type="submit" value="Invia" />
</form>
Questo è il codice Javascript/JQuery:
codice:
$(document).ready(function(){
$("form#send-single-mail").submit(function(){
$("div.loading").fadeIn("fast");
var dest=$("#dest");
var ogg=$("#ogg");
var cont=$("#mex");
if(ogg.value()==''){
ogg.addClass("highlight");
return false;
}else{ ogg.removeClass("highlight"); }
if(cont.value()==''){
cont.addClass("highlight");
return false;
}else{ cont.removeClass("highlight"); }
$.post(
"php/insert-new.php",
$("form#send-single-mail").serialize(),
function(outcome){
if(outcome==1){
$("div.loading").fadeOut("fast");
dest.val("");
ogg.val("");
mex.val("");
$("div.success").fadeIn("fast");
}else if(outcome==0){
$("div.loading").fadeOut("fast");
alert("Errore! Riprovare a inviare tra un po'");
}else{
alert(outcome);
}
}
);
return false;
});
});
Il codice PHP è qualcosa del tipo:
Codice PHP:
<?php print_r($_POST); ?>
e quindi mi aspetterei che mi salti fuori un alert con la stampa dell'array, invece mi rimanda alla pagina insert-new.php e il javascript sembra che non venga eseguito.
Spero riusciate ad aiutarmi