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

PHP 応答で適切なヘッダーが設定されていることを確認してください。JQuery が success 関数を呼び出すには、コンテンツ タイプを "application/json" として設定する必要があります。jquery ajax 関数を呼び出すときに、エラーまたは完全なコールバックにデバッグを追加してみてください。

于 2013-09-13T23:00:23.840 に答える
0

ええと、なぜobjが返す値をチェックする必要があると思います..

つまり ..

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

または、返された文字列の長さを確認してみませんか。

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

1つのアドバイス仲間、1つのパラメーターのみを返す場合.. JSONではなくe文字列を使用.. ;)したがって、phpでは次のようになります。

echo $databaseSuccess;

そしてJSでは.. IFはより単純になります:

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

それを得る ?

私が助けたことを願っています。

于 2013-09-13T22:28:28.363 に答える