Salve! Ho questo semplice form al cui click del submit voglio far attivare una funzione js:
Questo è il form (richiamato più volte in una pagina ma con id diversi):
codice:
<form method="post" id="form_comment">
<textarea name="comment<?php echo $id; ?>" id="comment<?php echo $id; ?>" class="comment<?php echo $id; ?>" rows="1" cols="29"></textarea>
<input type="hidden" name="verifica_login" id="verifica_login" value="<?php if(isset($_SESSION['nome_user'])) echo $_SESSION['nome_user']; else echo 'no'; // questo valore mi permette di verificare se l'ut è loggato?>" />
<button class="mySubmitButton" onClick="mySubmitButton(<?php echo $id; ?>)"></button>
</form>
La funzione js richiamata è la seguente:
codice:
function mySubmitButton(id) {
var id = id; //questo è l'id del contest che passo alla pag insert_comment_db.php per inserire il commento del db
var comment = $('textarea#comment'+id).val();
var dataString = '&comment=' + comment + '&id=' + id;
var login = $("#verifica_login").val();
alert('id= '+id+' comment ='+comment+' datastring è '+dataString);
if( comment=='') {
alert('Please insert a comment: id= '+id+' comment ='+comment+' ');
}
else {
if(login == 'no') {
alert('You have to login to comment');
}
else {
alert('sono prima di ajax');
$("#flash").show();
$("#flash").fadeIn(400).html('<span class="loading">Loading Comment...</span>');
$.ajax({
type: "POST",
url: "insert_comment_db.php",
data: dataString, cache: false,
success: function(html){
$("div#update"+id).append(html);
$("div#update"+id+" li:last").fadeIn("slow");
document.getElementById('comment'+id).value='';
$("#flash").hide();
//alert('inserito in db');
}
});alert('sono dopo di ajax');
return false;
}
}
}
I risultati che ottengo sono assurdi perchè la parte di codice
codice:
$("div#update"+id).append(html);
$("div#update"+id+" li:last").fadeIn("slow");
document.getElementById('comment'+id).value='';
$("#flash").hide();
non viene eseguita ma il file "insert_comment_db.php" viene richiamato con successo e quindi ciò che scrivo nella textarea è passato al database!! MA se rimuovo quell'alert alla fine alert('sono dopo di ajax'); non viene più richiamato il file "insert_comment_db.php" e ciò che scrivo nella textarea viene perso!! Dove sbaglio??