1

Wordpress ajax apiを使用して、php関数の結果を.post()ajaxでクライアントに送信しています。問題は、数値だけでなく0を返す値です。したがって、数値が「3」の場合、「30」になります。

したがって、ここにphp関数があり、user_idを取得して、そのユーザーに対応する未表示のコメント数を返します。

 add_action("wp_ajax_return_unseen_comment_count","return_unseen_comment_count");
 function return_unseen_comment_count() {
    $user_id = $_POST['userId'];
    $count = get_unseen_comment_count($user_id);
    echo $count;
 }

$ countの後に「test」という単語を配置すると、「3test0」が表示されます。

次に、間隔を使用して、新しい見えないコメントがないか関数をチェックします。

$(document).ready(function() {
    var userId = fodAjax.user_id;
    var cmntCount = $(".cmnt-cnt").text();
    if (userId > 0) {
      setInterval(function() {
               data = {
                  action: 'return_unseen_comment_count',
                  userId: userId
               };
               $.post(ajaxurl, data, function (response) {  
                  console.log(response);                  
               });
      }, 10000); //10 seconds
    }
});

今度get_unseen_comment_count($user_id)は別の関数でカウントをテンプレートに表示するために使用し、正しい値「3」を返すので、0を追加する必要がある余分なことは何もしていません。ここで何が欠けていますか?

4

1 に答える 1

1

ステートメントのexit;後に書く必要があります。echo

リクエストURLがwp-admin/admin-ajax.phpのときにAJAXリクエストが失敗した場合、失敗した理由に応じて-1または0を返します。さらに、AJAXリクエストが成功すると、0が返されます

参照

于 2013-01-16T11:59:15.333 に答える