web-dev-qa-db-ja.com

WordPress Ajaxが機能しない(カスタム管理者ページ)

私はAjaxを使ってちょっとしたことをやろうとしました。私はdivを置き換えようとしているだけです。

これが私がこれまでにしたことです。

add_menu_pageを使って管理メニューを作成しました。

それから私はテキストフィールドでそのページにフォームを追加します。送信ボタンをクリックしたら、divを置き換えるだけです。しかし、うまくいきませんでした。ブラウザでコンソールをチェックするとと表示されます。TypeErrorが見つかりません:未定義のプロパティ 'ajax'を読み取れません


function myajaxfunction() {
    $.ajax({ //ajax request
        url: ajaxurl,
        data: {
            'action':'rs_like_request',
            'post_type' : $('#post_type').val() // value of text box having id "post_type"

        },
        success:function(data) {  //result
         $(".showdiv").html(data); //showdiv is the class of the div where we want to show the results
        },
        error: function(errorThrown){
            console.log(errorThrown);
        }
    });  

}

<form action="" method="post">
    <label>Write post type : </label>
    <input type="text" name="post_type" id="post_type" value=""/>
    <input type="button" value="Show Post Titles" onclick="myajaxfunction()"/>

    <div class="showdiv"></div>

</form>

function rs_like_count() {

    if ( isset($_REQUEST) ) {   // $_REQUEST is having all the data sent using ajax
        $post_type= $_REQUEST['post_type'];
        echo $post_type;

}
 die();
}
add_action( 'wp_ajax_rs_like_request', 'rs_like_count' );
1
Sasa1234

Uncaught TypeError:未定義のプロパティ 'ajax'を読み取れません

@ Sasa1234、jQueryが未定義のために起こります。ご覧になってください @ EAMann答え 。だから、あなたのJSコードはこのようにすべきです:

function myajaxfunction() {
    if ( undefined !== window.jQuery ) {
        jQuery.ajax({ //ajax request
            url: ajaxurl,
            data: {
                'action':'rs_like_request',
                'post_type' : jQuery('#post_type').val() // value of text box having id "post_type"

            },
            success:function(data) {  //result
             jQuery(".showdiv").html(data); //showdiv is the class of the div where we want to show the results
            },
            error: function(errorThrown){
                console.log(errorThrown);
            }
        });  
    }
}
1
Jevuska