Забыли пару Improtant очков.
Я делаю это, чтобы исключить необходимость обновления страницы и, следовательно, переход вверх в начало страницы.
Функция успеха функции ajax отбросит весь новый div id = "comments", чтобы заменить существующий либо сообщение об ошибке, либо новый комментарий со всеми остальными ниже.
END EDIT
Я пытался с этим Jquery-Аякса функции под обертками безуспешно. У меня есть X количество сообщений на странице, каждая из которых имеет форму для вставки комментариев под каждым сообщением. Я думаю, что я довольно близко и пытался отладить его с помощью firebug, но, честно говоря, я действительно не знаю, на что я смотрю или в firebug.
Весь код ниже, любая помощь будет высоко оценена!
HTML форма и структура (из-за repetative формы, я чувствую, что я должен использовать метод выбора родительского Jquery, а не перебор каждый пост-комментарий раздел в моем выходном сценарии)
<div id="content_body_right">
<div id="activity">
....this is the area for each post....
</div>
<div id="comments">
<p class="comments_label">' . $reply_count . ' Comment</p>
<div id="comment1">
<div id="comment_user_img">
' . $imgOutputReply . '
</div>
<div id="comment_user">
<p class="user_text_comment">' . $firstNameReply . ' ' . $lastNameReply . '</p><p class="date_text_comment">' . $date_timeReply . '</p>
<p class="message_text_comment">' . $messageReply . '</p>
</div>
</div>
<div id="add_comment">
<form id="formAddComment" action="dashboard.php" enctype="multipart/form-data" method="post">
<div id="add_comment_left">
<textarea id="comment" name="comment" cols="75" rows="2">Add a Comment...</textarea>
</div>
<div id="add_comment_right">
<input id="userID" name="userID" type="hidden" value="' . $userID . '" />
<input id="actID" name="actID" type="hidden" value="' . $actID . '" />
<input id="btnComment" name="btnComment" type="submit" value="" title="Add Comment" />
</div>
</form>
</div>
</div>
</div>
ОК, теперь JQuery разметки
<script type="text/javascript">
$(document).ready(function(){
$("#formAddComment").submit(function(e) {
e.preventDefault();
var form = $(this);
var div_add_comment = form.parent();
var div_comments = div_add_comment.parent();
$.ajax({
type: "POST",
data: form.serialize(),
url: "includes/comment.php",
success: function(msg){
$div_comments.html(msg);
}
});
return false;
});
});
</script>
Наконец внешний PHP скрипт (Примечание: Я только вывесим начальные строки, в которых я локализовать данные корма в PHP вары.)
if(isset($_POST['actID'])){
$actID = mysql_real_escape_string($_POST['actID']);
$userID = mysql_real_escape_string($_POST['userID']);
$comment = mysql_real_escape_string($_POST['comment']);
............other processing here...........
}
Я подозрительно отношусь к моему сценарию jquery.
Еще раз спасибо,
Ваш «html» в верхнем блоке кода фактически смешанный php и html. Не то, чтобы это очень важно, но это немного запутывает - предоставление фактического генерируемого html одной формы, вероятно, будет более полезным. – cori