簡體   English   中英

Ajax在Wordpress中未返回成功結果

[英]Ajax not returning success result in Wordpress

我正在嘗試從更新數據庫時獲取返回值。 我使用AJAX通過Wordpress插件文件夾之一將數據發送到functions.php中的函數。 我試圖提醒成功和失敗功能,並且它總是調用失敗功能。 我如何知道AJAX響應是否成功,以便在成功時可以執行一些其他代碼。

腳本

     function removeUser( department , user ){
            var value = { user_id: user , dep_name: department.id };
            $('#'+department.id+ user +"_div").hide();
            $.ajax({
                type: "POST",
                data: value
            });
        }

functions.php

function removeUser(){
    if(isset($_POST['user_id'])){
        //echo $_POST['user_id'];
        //echo $_POST['dep_name'];

        $user_meta = get_user_meta($_POST['user_id'], 'wpwf_quotation_position');
        $user_department = json_decode ($user_meta[0]);
        //print_r ($user_department);
        //echo (json_encode($user_department));

        foreach ($user_department as $key => $value){

            if ($value == strtolower($_POST['dep_name'])){

                //print_r ($user_department);
                unset($user_department[$key]);
                $user_department = array_values($user_department);
                //print_r ($user_department);
                //echo (json_encode($user_department));
                //print_r (json_encode($user_department));
                update_user_meta( $_POST['user_id'], 'wpwf_quotation_position', json_encode($user_department));
                break;
            }
            //echo $key." : ". $value ." - " . strtolower($_POST['dep_name'])."<br>";
        }
        //echo 'ssss';
        wp_send_json($_POST);
    }

 }
 add_action('init', 'removeUser');

上面的代碼運行良好,但是我真正想要做的如下,但是未調用成功函數。 我在這里想念什么或做錯了什么?

    function removeUser( department , user ){
            var value = { user_id: user , dep_name: department.id };

            $.ajax({
                type: "POST",
                data: value,
                success:function() {
                    $('#'+department.id+ user +"_div").hide();
                }
            });
        }

您應該使用瀏覽器控制台來調試這種事情。 此刻,我想說的是“未定義不是函數”錯誤,這意味着它無法識別$,請改用安全模式jQuery(jQuery.ajax)。

另外,您還缺少ajax調用中的URL和操作。

function removeUser( department , user ){
        var value = { action: 'removeUser'/*assuming this is your ajax action */, user_id: user , dep_name: department.id };

        jQuery.ajax({
            type: "POST",
            url: "/wp-admin/admin-ajax.php",
            data: value,
            success:function(output) {
                console.log(output); // have a look at the console to find your values prob something like output.user_id
                jQuery('#'+department.id+ user +"_div").hide();
            }
        });
    }

我也看不到你也把php函數鈎到了wp_ajax。 我以為你已經做到了嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM