如何使用jQuery AJAX将多个Javascript变量发送到PHP

时间:2014-04-23 12:41:59

标签: php 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'])) ??

感谢您的帮助。

4 个答案:

答案 0 :(得分:0)

你的意思是下面的电话中的数据吗?当然,随着你的数据;)

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

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

答案 1 :(得分:0)

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

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

在您的服务器上,您可以阅读所有这些URL-Params ...抱歉,我不知道如何在php中执行此操作。 但是在jQuery-ajax中它看起来像

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

答案 2 :(得分:0)

您可以作为常规参数发送的整数(我想您可能需要将字符串转换为整数服务器端)。对于数组,我建议转换为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上的问题和答案来获取点点滴滴。我无法保证服务器端部件能够正常工作,但它们应该非常接近。

答案 3 :(得分:0)

发布此类数据

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)