souci ajax sur un submit

Petit nouveau ! | 3 Messages

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
	<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

Mammouth du PHP | 672 Messages

06 sept. 2011, 09:40

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.

ViPHP
ViPHP | 4039 Messages

06 sept. 2011, 09:49

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.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.