簡體   English   中英

如何格式化1個ajax調用的2個變量,以便我可以輕松使用數據?

[英]How to format 2 variables for 1 ajax call so I can use the data easily?

我有這個點擊事件...

$('#save').on('click', function(){

    var employee = $('#employee').serialize(); // form with name, phone, email etc.

    var training = []; // empty array for now

    $('.entry').each(function(){

        var tid = $(this).attr('id'); // number
        var start = $(this).find('#start').val(); // date
        var expiration = $(this).find('#expiration').val(); // date

        var entry = [tid, start, expiration]; // create array with data

        training.push(entry); // push each entry into array

    });

    $.ajax({

        method: 'post',
        url: 'brain.php',
        data: {'training':training, 'employee':employee},
        success: function(results) {

            console.log(results)

        } 

    });

});

收到此調用的PHP看起來像這樣...

 $employee = $_POST['employee']; // has string of input values
 $training = $_POST['training']; // has array of entries

現在可以正常工作了,我收到了兩個變量,但是出於我的目的,它們有點難以使用,即將它們放入數據庫中。 我真的不知道如何輕松地獲取數據。 我想要這樣的東西...

$firstName = $_POST['employee']['first-name']; // first-name input
$lastName  = $_POST['employee']['last-name']; // last-name input

$entry1 = $_POST['training'][0]; // array data found in 0
$entry2 = $_POST['training'][1]; // array data found in 1

我的問題是,我必須在javascript或PHP中進行哪些更改才能獲得所需的內容,並使這些內容更易於使用? 我想我在這里缺少一個關鍵概念。

我認為,由於您沒有太多數據,因此您可以手動為員工創建一個對象,而不是使用序列化。 您也可以將對象用於訓練條目,而不是使用數組,然后訓練數組中的每個點都有一個對象來代表訓練,其ID與訓練數組中的位置相對應。 有點羅word,但這就是我的意思:

$('#save').on('click', function(){

    var employee = {
        "first-name":$('#employee').find('[name=first-name]').val(),
        "last-name":$('#employee').find('[name=last-name]').val()
    };

    var training = []; // empty array for now

    $('.entry').each(function(){

        var tid = $(this).attr('id'); // number
        var start = $(this).find('#start').val(); // date
        var expiration = $(this).find('#expiration').val(); // date

        var entry = {start:start,expiration:expiration}; // create object with data

        training[tid] = entry; // push each entry into array, using ID of entry as index

    }); 
    var data = {employee:employee, training:training};

    //POST function here - use data variable as data
});

這是一個小提琴: http : //jsfiddle.net/x2hfb719/

暫無
暫無

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

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