2

基本的に私はCMSを作っていて、ポストエディットに入れたいと思っています.

どのように動作するかは、ブログ投稿がエコーアウトされ (PHP)、編集ボタンをクリックすると表示される隠し ckeditor があることです。編集ボタンは保存ボタンに置​​き換えられます。

これはすべて正常に機能しますが、ブログ投稿を保存するときに問題が発生します。

php は正常に動作し、ajax 検証も正常に動作しますが、ブログ投稿が 1 つある場合のみです。

複数の投稿がある場合、エラーが発生します。問題は、投稿の保存ボタンがすべてのブログ投稿からすべてのデータを送信しているように見えることです。firebug ネットで確認したところ、すべてのデータが送信されていることがわかりました。

フォームの保存ボタンがそのフォーム内のデータにのみ影響するようにする方法が必要です。現時点では、エラー/成功メッセージがすべて表示されます。

エコーアウトされた投稿は次のとおりです。

<div class="blogtest">

    <form action="process/updatepost.php" class="updatepost" method="post">
        <input type="button" class='.$editenabled.' value="Edit">
        <input type="submit" class="saveupdatebutton" value="Save">
        <input type="hidden" class="postid" name="postid" value="'.$postID.'">

        <div class="text">

            <div class="buildtext">'.$text.'</div>

            <div class="editor"><textarea name="ckeditor" class="ckeditor">'.$text.'</textarea></div>

        </div>

    </form>

    </div>

これはJavaScriptです:

$(document).ready(function(){ $(".updatepost").submit(function(){

    $(".error").remove();
    $(".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 blogpost = $('.ckeditor').val();

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

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

    if (response.databaseSuccess)
       $('.ckeditor').after('<div class="success">Post Updated</div>');
    else
       $('.ckeditor').after('<div class="error">Something went wrong!</div>');

}
        });
    }
    return false;
});

});

読んでくれてありがとう。お役に立てれば幸いです。

4

1 に答える 1