0

カスタム メディア レビューの目的で、WordPress システム用のプラグインを開発しています。私はほとんどのものをセットアップしましたが、それ以上のものはありません。

現在、AJAXを使用してテーブル値を更新するために、クリック( onlink )でデータベースを更新する部分に固執しています。以下のコードを参照してください。while ループがあり、ループ内で AJAX を使用してメディア ステータスを更新したいと考えています。これが正しい方法なのか、それを実現する別の簡単な方法があるのか​​ はわかりません。任意の提案をいただければ幸いです。

コード:

<?php
$media_item = mysql_query($media_sql);

if ($media_item) {

echo '<ul class="rm-media-list">'; 

    while ($media = mysql_fetch_array($media_item)) {

        $m_uid = $media['user_id'];
        $m_uname = $media['user_login'];

        $media_class = new q2a_review_media;
        $thumb_path = $media_class->rm_thumbnail_url($pid,$m_uid);
        $media_url = $media_class->rm_media_url($pid,$m_uid);
        $mediaid = $media['id'];
        $image_name = $media['image_name'];                                

        echo '<li>';
        echo '<span class="rm-media-user"><a href="'.admin_url( 'user-edit.php?user_id=' . $m_uid, 'http' ).'">',$m_uname,'</a></span>';
        echo '<a href="'.$media_url.$image_name.'" rel="lightbox['.$pid.']" title="Post: '.$pid.' |  '.$ptitle.' | Image: '.$image_name.' | by: '.$m_uname.' " ><img src="'.$thumb_path.$image_name.'" alt="'.$media['image_name'].'" width="56" class="rm-thumbs-list" /></a>';
        echo '<span class="rm-action-links"><a href="#" id="approve-'.$mediaid.'" >Approve</a> | <a href="#" id="delete-'.$mediaid.'" >Delete</a></span>';                            
        echo '</li>';
    }

} else {

    echo 'No media found';

}

echo '</ul>';                        
?>

データベース テーブル: ここに画像の説明を入力

マイ プラグイン ページの出力 ここに画像の説明を入力

Approve上の画像では、 |というリンクが表示されています。Deleteここでは、ajax を使用してデータベースと対話したいと考えています。管理者がクリックすると、列のApprove値が 0 から 1 に更新され、ディレクトリから行と画像が削除されます。理解するのに十分なデータを投稿したことを願っています。そうでない場合は、さらに情報を追加しようとしますのでお知らせください。statusDelete

ミリオンありがとう.... :)

4

1 に答える 1

2

まず、ステートメントはループecho '</ul>';の一部である必要があります。if

AJAX コードは while ループ内にある必要はありません。コードを操作して AJAX リクエストを作成する方法を次に示します。

<a>最初にタグを少し変更しましょう。

<a href="#" class="approve-button" id="'.$mediaid.'">Approve</a>

この変更により、ボタンのグループを持つことができclass="approve-button"ますid="the id of the item you want to approve"

これで、JavaScript を使用して AJAX リクエストを作成できます。便宜上、jQuery を使用してこの要求を行います。

<script type="text/javascript">

//Attach an onclick handler to each of your buttons that are meant to "approve"
$('.approve-button').click(function(){

   //Get the ID of the button that was clicked on
   var id_of_item_to_approve = $(this).attr("id");

   Make an AJAX request
   $.ajax({
      url: "some-page.php", //This is the page where you will handle your SQL insert
      type: "post",
      data: "id=" + id_of_item_to_approve, //The data your sending to some-page.php
      success: function(){
          console.log("AJAX request was successfull");
      },
      error:function(){
          console.log("AJAX request was a failure");
      }   
    });

});

</script>

行く限りsome-page.php、これはあなたがする必要があることです:

  • データベースに変更を加える SQL ステートメントを用意します。
  • クリックされた承認ボタンに付けられた ID にアクセスするには$_POST、AJAX リクエストのタイプが「投稿」であるため、配列を使用できます。具体的には、ID が保存される場所は次のとおりです。$_POST['id']

参考: ページに jQuery をインポートするには、次を使用できます。

<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'></script>
于 2013-02-24T23:06:32.747 に答える