簡體   English   中英

如何使用jQuery AJAX將多個Javascript變量發送到PHP

[英]How to send multiple Javascript variables to PHP using jQuery AJAX

我的問題尋求的答案更像是“如何進行”。

我有一個文檔,在經過多方用戶交互之后,我得到了三個javascript變量。 1個整數和2個字符串數組,它們可能像這樣。

integer: 66
array1: ["100.01", "200.05", "100.15"]
array2: ["2", "23", "24"]

我需要使用jQuery AJAX通過POST將這些變量發送到PHP文件。 然后,PHP文件應按原樣處理這些變量,整數和數組。

所以基本上,我的問題是,如何在同一AJAX調用中發送這3種不同類型的變量? 並且...在服務器端如何接收它們?

(json_decode($_POST['myVariable'])) ??

謝謝您的幫助。

您是說喜歡以下通話中的數據嗎? 當然,然后用您的數據;)

 $.ajax({
     url: "../WebService",
     type: 'POST',
     data: { recipient: mailrecipient, input: content },
     dataType: 'xml',
     success: function (xmldata, textStatus, XMLHttpRequest) {

         alert("Mail sent to:\n" + mailrecipient);
        }
});

您可以使用類似REST的方法:

http://your-server?int=integervalue&str1=string2value&str2=string2value

然后,在您的服務器上,您可以閱讀所有這些URL參數...對不起,我不知道如何在php中進行操作。 但是在jQuery-ajax中,它看起來像

jQuery.ajax({url:url,params:{'int1':integervalue,'string1':string1value,'string2':strin2value});

您可以將整數作為常規參數發送(我想您可能需要從字符串轉換為服務器端的整數)。 對於數組,我建議轉換為JSON字符串(使用JSON.stringify ),如下所示:

$.ajax({
    type: 'post',
    data: {
        integer: integer,
        array1: JSON.stringify(array1),
        array2: JSON.stringify(array2)
    },
    ...
});

然后在您的PHP中,您將使用json_decode($_POST['array1'])來將array1 POST參數作為實際數組取回。

免責聲明:我不使用PHP編寫代碼,我只是從閱讀StackOverflow上的問題和解答中得到了點點滴滴。 我不能保證服務器端部分可以正常工作,但是它們應該非常接近。

像這樣發布數據

var sData = JSON.stringify({integers: 66,array1: ["100.01", "200.05", "100.15"],array2: ["2", "23", "24"]});

$.ajax({
    type:"POST",
    url:"getData.php",
    data:sData,
    dataType:"json",
    success: function(data){
        console.log(data);  
    },
    error: function(){}
});

getData.php像這樣訪問這些數據

$results = json_decode(file_get_contents('php://input'));

$int = $results->integers;
$arr1 = $results->array1;
$arr2 = $results->array2;
$value1 = 0;

foreach ($arr2 as $value) {
    $value1 += $value;
}

echo json_encode($value1); // you will get response as 49(2 + 23  +24) 

暫無
暫無

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

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