Page 1 sur 1

souci ajax sur un submit

Posté : 18 août 2011, 00:45
par cdog
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
	<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; }
Si vous pouviez m'aider à 'en sortir ce serait gentil?
Bonne soirée à toutes et tous

Re: souci ajax sur un submit

Posté : 06 sept. 2011, 09:40
par macgawel
Bonjour.

Je n'ai pas regardé ton code - trop de code et JS utilise une librairie.

Pour voir si tu recharge ta page, tu peux - par exemple - afficher l'heure en PHP.

Re: souci ajax sur un submit

Posté : 06 sept. 2011, 09:49
par Berzemus
Tu peux aussi utiliser firebug, qui va t'afficher tout le comportement de la page. Tu verras bien s'il la recharge ou s'il fait une requête asynchrone.

Ceci dit, sans avoir un œil sur la partie JS, difficile de t'aider.