javascript从php返回没有更新任何东西

时间:2013-09-13 22:05:13

标签: javascript php jquery html ajax

很难在标题中解释......

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

然而,在ajax调用得到正确的repsonse它没有执行我希望它...

我想要发生的是当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网址是动态的,具体取决于查看的帖子。我是否需要它像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);

非常感谢任何帮助! :)

2 个答案:

答案 0 :(得分:0)

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

我的意思是..

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

或者你为什么不检查重新训练的弦的长度。

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

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

echo $databaseSuccess;

在JS ......中,IF会更简单:

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

得到它?

希望我帮助过。

答案 1 :(得分:0)

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