2013-01-01 7 views
1

J'ai suivi le Submit Ajax Form tutorial on tutsplus.com, mais ne peux pas comprendre pour la vie de moi pourquoi mes données ne seront pas addreply.php appliqué à elle. Quand je regarde dans ma table mysql, les données ne sont pas insérées. Toute aide serait grandement appréciée. J'ai cherché sur le web et j'ai dépanné pendant plusieurs heures.Ajax formulaire ne pas soumettre

$(document).ready(function() { 

$(".replyLink").one("click", function(){ 
$(this).parent().after("<div id='contact_form'></div>"); 
$("#contact_form").append("<form id='replyForm'></form>"); 
$("#replyForm").append("<input class='enterName' id='enterName' type='text' 
name='name' placeholder='name' rows='1' cols='20' />"); 
$("#replyForm").append("<textarea class='enterReply' id='enterReply' name='comment' 
placeholder='reply'></textarea>"); 
$("#replyForm").append("<input type='hidden' name='id' value=''>"); 

commentID= $(this).parent().attr('id'); 

$("#replyForm").append("<input class='replyButton' id='replyButton' type='submit' `value='reply'/>");` 
$(".enterReply").slideDown();         

$(".replyButton").slideDown(); 

}); 

$(".replyButton").click(function() { 

var name = $("input#enterName").val(); 
var reply = $("textarea#enterReply").val(); 



var dataString = 'name='+ name.val() + '&comment=' + reply.val(); 

$.ajax({ 
type: "POST", 
url: "addreply.php", 
data: dataString, 
success: function() { 
} 
}); 
return false; 
}); 

**addreply.php** 

<?php 
session_start(); 

$replyID= $_POST['id']; 

$name= $_POST['name']; 
$comment= $_POST['comment']; 
$type= $_POST['type']; 
$song= $_POST['song']; 

if($song == ''){ 
$song= 'not'; 
} 

include 'connection.php'; 

if($_SESSION['signed_in'] == 'yes') { 
$query1= "INSERT INTO ApprovedComments(name, comment, Authorized, type, reply_ID, song, date) 
VALUES('$name', '$comment', 'YES', '$type', '$replyID', '$song', NOW());"; 

$insertComment= mysql_query($query1); 
// echo "hi"; 
} 

if(!isset($_SESSION['signed_in'])) { 
$query2= "INSERT INTO PreApprovedComments(name, comment, reply_ID, song, date) 
VALUES('$name', '$comment', '$replyID', '$song', NOW());";  

$insertComment= mysql_query($query2); 
} 

mysql_close(); 
?> 
+0

enregistrement firebug..areu obtenir une erreur sur la console? Vérifiez sur l'onglet net ur demande se soumis au serveur? Last but not least, j'espère que vous avez ajouté jquery bibliothèque dans votre HTML .. – Rajesh

+0

merci d'avoir répondu. J'ai vérifié toutes ces choses. Ce n'est probablement pas une de ces erreurs vraiment simples. après avoir appuyé sur le bouton de réponse, la page s'actualise et me redirige vers (nom_web_site) /? name = sss & comment = sss & id =. Je ne sais pas pourquoi cette information apparaît dans l'url – Mouse6541

+0

post ur code HTML pour le bouton réponse .. Sur le bouton, cliquez sur la page ne devrait pas actualiser .. parce que je peux voir retour déclaration fausse est déjà ajouté sur l'événement de clic .. si la page est en cours rafraîchie puis il doit y avoir une erreur affichée dans la console dans firebug – Rajesh

Répondre

0

Essayez

$.ajax({ 
    type: "POST", 
    url: "addreply.php", 
    data: $("#replyForm").serialize()+'name='+ encodeURIComponent(name) + 
      '&comment=' + encodeURIComponent(reply), 
    success: function() { 
    } 
}); 

ce sera poster tous les champs du formulaire #replyForm et les champs de nom et commentaire.

+0

merci pour la réponse. n'a pas fonctionné cependant. C'est vraiment étrange. – Mouse6541

+0

@ user1940631 remove 'var dataString = 'nom =' + nom.val() + '& comment =' + reply.val();' ceci provoque une erreur provoquant l'envoi de votre formulaire (nom est une chaîne et n'a pas de méthode val()). – Musa