簡體   English   中英

帶有參數數組的Ajax發布,然后在PHP中引用

[英]Ajax post with array of parameters, then referenced within PHP

我已經編寫了一個javascript函數來幫助我編寫ajax帖子,在此函數中它接受參數數組。 功能如下:

/**
* quick function to call an ajax function with post, and get data back via json
* @param {string} url - url of ajax call or php file
* @param {array} data - array of data to pass in a key value pair
* @callback {function} success_callback - on success
* @callback {function} error_callback - on error
* @callback {function} complete_callback - on complete
* @return boolean
*/      
    function ajax_json_post(url, data, success_callback, error_callback, complete_callback) {
        $.ajax ({
            type:"POST",
            url: url,
            data: { data: data},
            dataType: "json",
            success:function(response) {                               
                if(typeof success_callback === "function") {
                    success_callback(response);

                }

                return true;

            },
            error:function(jqXHR, textStatus, errorThrown) {
                if(typeof error_callback === "function") {
                    error_callback(jqXHR, textStatus, errorThrown);

                }

                return false;

            },
            complete:function() {  
                if(typeof complete_callback === "function") {
                    complete_callback();

                }

                 return true;

            }  

        });

    }

我用來引用此函數的代碼在下面,並且可以工作,但是在發布到PHP腳本時,可以通過$ _POST ['data'] ['value1']訪問該數組;

我的問題是,如何將這些參數傳遞到ajax帖子中,但無需在PHP中聲明數組名稱就能訪問它們,應該是$ _POST ['value1']

            var data = {
                value1: 1,
                value2: true

            }


            ajax_json_post("ajax/webservice_quote_domestic.php", data, function(response) { //success
                 if(typeof callback === "function") {
                     callback(response);

                 }

            }, function() { //error


            }, function() { //complete


            });     

簡單

只需更改此代碼並傳遞data: data,而不是data: { data: data},

function ajax_json_post(url, data, success_callback, error_callback, complete_callback) {
    $.ajax ({
        type:"POST",
        url: url,
        data: data,              // change is here
        dataType: "json",
        success:function(response) {                               
            if(typeof success_callback === "function") {
                success_callback(response);
            }
            return true;
        },
        error:function(jqXHR, textStatus, errorThrown) {
            if(typeof error_callback === "function") {
                error_callback(jqXHR, textStatus, errorThrown);
            }
            return false;
        },
        complete:function() {  
            if(typeof complete_callback === "function") {
                complete_callback();

            }
             return true;
        }  
    });
}

暫無
暫無

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

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