0

很难在标题中解释...

所以我有一个通过javascript验证的表单,一个ajax请求被发送到一个php页面,如果成功输入数据并设置数据库响应。

但是,在获得正确响应的 ajax 调用中,它并没有执行我希望它执行的操作...

我想要发生的是当 php 返回成功的 JSON 返回时,重新加载 .commentsdiv。

然而,这不起作用。但是评论被添加到数据库中。

这是代码

评论框 div 和表单的一部分:

<div class="commentsbox">
        <form class="addcomment" action="process/addcomment.php" method="post">
        <input type="hidden" class="postid" name="postid" value="'.$postID.'">
        <input type="hidden" class="usernameuser" name="usernameuser" value="'.$usernameuser.'">
        <input type="hidden" class="userid" name="userid" value="'.$userid.'">

        <input type="text" name="addpostcomment" class="addpostcomment" placeholder="Add Comment..." />
        <input type="submit" id="addcommentbutton" value="Post" />
        <br />
        <br />
        </form>
</div>

这是javascript:

viewbuild.php url 是动态的,具体取决于查看的帖子。我需要它像 viewbuild.php?id=1 等吗?因为那也不管用。

    // JavaScript - Edit Post

$(document).ready(function(){
$(".addcomment").submit(function(){
    var $targetForm = $(this);

    $targetForm.find(".error").remove();
    $targetForm.find(".success").remove();

    // If there is anything wrong with 
    // validation we set the check to false
    var check = true;

    // Get the value of the blog update post
    var $comment = $targetForm.find('.addpostcomment'),
        newcomment = $comment.val();

    // Validation
    if (newcomment == '') {
        check = false;
       $comment.after('<br><br><br><div class="error">Text Is Required</div>');
    }

  // ... goes after Validation
$.ajax({
type: "POST",
url: "process/addcomment.php",
data: $targetForm.serialize(),
dataType: "json",
success: function(response){
    if (response.databaseSuccess) {
        $('.commentsbox').load('viewbuild.php');
    }
    else {
        $ckEditor.after('<div class="error">Something went wrong!</div>');
    }
}
});
    return false;
});
});

这是php的部分结尾:

$return['databaseSuccess'] = $dbSuccess;

echo json_encode($return);

非常感谢任何帮助!:)

4

2 回答 2

0

好吧,为什么我认为您应该检查 obj 返回的值..

我的意思是 ..

if(response.databaseSuccess == ??! ) { ... }

或者你为什么不检查重截字符串的长度。

if(response.databaseSuccess.length > 3){ alert('ok');}

一个建议兄弟,如果你只返回一个参数..使用e字符串..而不是JSON ..;)所以,在php中你会:

echo $databaseSuccess;

在 JS 中 .. IF 会更简单:

 if(response == "ok"){ alert('ok');}

得到它 ?

希望我有所帮助。

于 2013-09-13T22:28:28.363 回答
0

确保您的 php 响应设置了正确的标头。您需要将内容类型设置为“application/json”,以便 JQuery 调用成功函数。尝试在调用 jquery ajax 函数时为错误添加调试或完成回调。

于 2013-09-13T23:00:23.840 回答