souci ajax sur un submit
Posté : 18 août 2011, 00:45
bonsoir,
J'ai un formulaire de commentaires que j'envoie dans ma bdd (mysql)
il s'envoie bien, pas de souci, sauf que je n'arrive pas à déterminer si il recharge la page (ne prends pas en compte la partie ajax) ou si il remonte en haut de page pour une autre raison.
Du fait que je n'utilise pas d'ancres, j'ai tendance à pensé que s'il remonte en haut de page au clic sur le submit, c'est qu'il recharge la page... ?
le code:
page du form
le js:
Si vous pouviez m'aider à 'en sortir ce serait gentil?
Bonne soirée à toutes et tous
J'ai un formulaire de commentaires que j'envoie dans ma bdd (mysql)
il s'envoie bien, pas de souci, sauf que je n'arrive pas à déterminer si il recharge la page (ne prends pas en compte la partie ajax) ou si il remonte en haut de page pour une autre raison.
Du fait que je n'utilise pas d'ancres, j'ai tendance à pensé que s'il remonte en haut de page au clic sur le submit, c'est qu'il recharge la page... ?
le code:
page du form
<script type="text/javascript" src="./elements2/news/comment/mootools1.3.2.js"></script>
<script type="text/javascript" src="./elements2/news/comment/script.js"></script>
[...]
<p><b>Ajoute un commentaire:</b></p>
<form method="post" action="news.php?lang=fr&url=<? echo $newsurl; ?>" id="monForm" enctype="application/x-www-form-urlencoded" name="formulaire">
<p><b><font color="#ff0000">*</font>Pseudo :<br></b></p>
<p>
<input type="text" name="pseudo" value="" maxlength="50" size="60">
</td>
</p>
<p><b><font color="#ff0000">*</font>E-mail :<br></b></p>
<p>
<input type="text" name="mail" value="" maxlength="50" size="60"></td>
</p>
<p><b><font color="#ff0000">*</font>Votre commentaire :<br></b></p>
<p>
<textarea id="txt" name="txt" value="" rows="6" cols="50"></textarea></br>
<b>Il vous reste <font color="#ff0000"><span id="carac_reste_txt"></span></font> caractères.</b>
<script type="text/javascript">
<!--
maxlength_textarea('txt','carac_reste_txt',500);
-->
</script>
</p>
<p>
<input type="submit" name="Submit" value="Envoyer">
</p>
</form>
<div id="resultat">
[php]
<?
if (!isset($_POST['submit']))
{
$ip=$REMOTE_ADDR;
if (isset($_POST['pseudo']) AND isset($_POST['mail']) AND isset($_POST['txt']))
{
if ($_POST['pseudo'] != NULL AND $_POST['mail'] != NULL AND $_POST['txt'] != NULL)
{
$req_create ="INSERT INTO comments (comment_idfr,comment_pseudo,comment_ip,comment_mail,comment_txtfr)
VALUES ('$comment_idfr','$pseudo','$ip','$mail','$txt')";
$ok=mysql_query($req_create);
if ($ok){echo 'Votre commentaire a bien été ajouté !';}
else {
echo 'Votre commentaire n\'a pu être ajouté...<br/>';
}
}
}
}
?>
[/php]
le js:
Code : Tout sélectionner
document.addEvent('domready', function(){
/* Pour effacer le contenu des champs texts sur un focus */
$$('input').each(function(el){
if(el.get('type')!=='text'){return;}
var value = el.get('value');
el.addEvent('focus', function(){
if(this.get('value') == value){
this.set('value','');
}
});
});
/* Pour envoyer le formulaire par ajax */
var monForm = $('monForm');
monForm.addEvent('submit', function(e){
e.stop();
monForm.set('send', {
onSuccess : function(responseText, responseXML){
$('resultat').set('html', responseText);
}
})
monForm.send();
});
});
function maxlength_textarea(id, crid, max)
{
var txtarea = document.getElementById(id);
document.getElementById(crid).innerHTML=max-txtarea.value.length;
txtarea.onkeypress=function(){eval('v_maxlength("'+id+'","'+crid+'",'+max+');')};
txtarea.onblur=function(){eval('v_maxlength("'+id+'","'+crid+'",'+max+');')};
txtarea.onkeyup=function(){eval('v_maxlength("'+id+'","'+crid+'",'+max+');')};
txtarea.onkeydown=function(){eval('v_maxlength("'+id+'","'+crid+'",'+max+');')};
}
function v_maxlength(id, crid, max)
{
var txtarea = document.getElementById(id);
var crreste = document.getElementById(crid);
var len = txtarea.value.length;
if(len>max)
{
txtarea.value=txtarea.value.substr(0,max);
}
len = txtarea.value.length;
crreste.innerHTML=max-len;
}Bonne soirée à toutes et tous