의견 양식의 데이터를 MySQL 데이터베이스에 저장하고 새로 고침 할 필요없이 해당 주석으로 페이지를 업데이트하려고합니다. Facebook 댓글이 작동하는 것과 유사합니다.MySQL에 데이터를 저장하고 새로 고치지 않고 해당 데이터로 페이지를 업데이트하십시오.
나는 이곳에 대한 해답을 찾았지만, 내 필요에 맞는 것을 찾지 못했습니다.
var ajaxSubmit = function(formEl) {
// fetch where we want to submit the form to
var url = $(formEl).attr('action');
// fetch the data for the form
var data = $(formEl).serializeArray();
// setup the ajax request
$.ajax({
url: url,
data: data,
dataType: 'json',
success: function(data) {
if(rsp.success) {
alert("Comment Successfully Added!");
}
});
return false;
}
내가 경고를 호출하고 있기 때문에 페이지가 현재이 스크립트 업데이트되지 않습니다 알고
다음은 PHP 스크립트로 양식 데이터를 제출하는 AJAX이다. 그러나 데이터를 제출할 때insertComment()
함수를 호출하고 데이터베이스에 주석을 삽입하는 페이지 인
/ajax/comment.process.php
페이지로 가져옵니다. 나는 지금
success()
기능에
alert()
기능을 가지고 있으며 나는 그것을 얻지도 못하고있다.
내가 원하는 것은 의견을 제출할 때 사용자가 현재 페이지를 떠나지 않고 방금 제출 한 내용으로 업데이트된다는 것입니다. 그게 사실 반환하는 경우 여기
이 스크립트는 데이터베이스에 코멘트를 저장하는insertComment()
함수를 호출
/ajax/comment.process.php'
session_start();
include_once('../classes/comment.class.php');
include_once('../classes/db.class.php');
$user_id = $_SESSION['user_id'];
$db = new DBConnection;
$comments = new Comment($db);
$blog_id = intval($_POST['blogID']);
$addCom = $comments->addComment($user_id);
if($addCom === FALSE) {
$resp = "<span class='error'>Error adding comment</span>";
} else {
$resp = $comments->getComments($blog_id);
}
return $resp;
의 코드이며, 다음, 그 특정 게시물에 대한 코멘트를 검색하는 getComments()
함수를 호출 어레이에 저장합니다.
의견 대답이 데이터베이스에 저장되었지만 비어있는 ajax/comment.process.php
페이지로 리디렉션됩니다. 페이지를 새로 고치지 않고도 게시 한 메모로 현재 페이지를 업데이트하려면 어떻게합니까? 나는 $resp
변수를 반환한다고 생각했지만, 그렇다면 분명히 그럴 수는 없지만, 표시 할 루프를 foreach()
할 수는 있습니다.
편집 : 아래의 답변에 모든 것을 구현했으며 아직이 문제를 해결하지 않았습니다.preventDefault();
, return false;
및 return ajaxSubmit(this);
경고 주위에서 rsp.success를 제거하면 어떻게됩니까? – Oli
'ajaxSubmit'을 어떻게 부르십니까? – Musa
경고 주위에서'rsp.success'를 제거해도 아무런 차이가 없습니다. 'onsubmit = "ajaxSubmit (this);"'을 '