0

だから私はフォーム(テキストボックスと送信)付きのコメントボックスを持っています。これは検証され、ajax 経由で php ページに送信されます。

すべて問題なければ、応答が設定され、ページが続行されます。

ただし、新しいコメントが表示されるように、div 自体を更新する必要があります。

単にdivをリロードするためだけに追加などの複雑なことはしたくありません(データはデータベースから取得されます)。

私は過去にこれを使用しましたが、うまくいきません:

 $('#divid').load('page.php #divid'),

これをどのように変換できるか考えてみてください:

        if (check == true) {
        $.ajax({
        type: "POST",
        url: "process/addcomment.php",
        data: $targetForm.serialize(),
        dataType: "json",
        success: function(response){

    if (response.databaseSuccess)
       $comment.after('<div class="error">Comment Added</div>');
    else
       $ckEditor.after('<div class="error">Something went wrong!</div>');

}
        });
    }
    return false;
});

});

成功が応答されたら、div を更新するには?

たとえば、php に別の $return を追加しようとすると

} catch (Exception $e) {
$return['databaseException'] = $e->getMessage();
}

$return['databaseSuccess'] = $dbSuccess;
$return['responseHtml'] = 'Post Updated';

echo json_encode($return);

JavaScriptは機能せず、返品が印刷されたPHPページのロードを取得するだけです..

ありがとう。

4

4 に答える 4

2

もしあなたがそうするなら

$("#divid").html( "Comment Added" )

そのdiv内にhtmlを設定します。

于 2013-09-13T19:53:05.473 に答える
2

私はあなたがこれを行うことを意味していると思います

$('#divid').load('page.php');

jQuery .loadドキュメントを確認してください

于 2013-09-13T19:56:12.207 に答える
0

コメントが送信された後、サーバー上でコメントを処理していると思います(検証/サニテーション/など)。したがって、処理されたコメントを応答の一部として返し、それを HTML に挿入します。

$.ajax({
    type: "POST",
    url: "process/addcomment.php",
    data: $targetForm.serialize(),
    dataType: "json",
    success: function(response){
        if (response.databaseSuccess) {
            // if you have a designated empty div already, you can use .html()
            $("#divid").html('<div class="success">'+response.commentText+'</div>');
            // if you want to append it to an already existing list of comments, you can use .append()
            $("#divid").append('<div class="success">'+response.commentText+'</div>');
        }
        else {
            $ckEditor.after('<div class="error">Something went wrong!</div>');
        }
    }
});

もちろん、これにはresponse.commentText、返された JSON オブジェクトに追加する必要があります。

于 2013-09-13T20:13:47.137 に答える