如何通过URL发送数组并在PHP中解压缩?

时间:2015-07-27 18:29:30

标签: javascript php arrays

这是一个脚本。

它提供了一些选择输入,允许从各种类型的选项中进行选择。按下提交按钮时,它会在mats中记录数据,并将mats数组推送到名为materialsUsed的数组中。每次单击提交按钮时,都会在materialsUsed中添加一个新数组。

我想知道如何通过URL将materialsUsed数组发送到php以在那里提取数据并将其插入到用PHP创建的数组中。

var mats = [name= "", thick= "", size= "", quantity= 0, price= 0];
mats.name = document.getElementById("mat").options[document.getElementById("mat").selectedIndex].value;
mats.thick = document.getElementById("thick").options[document.getElementById("thick").selectedIndex].value;
mats.size = document.getElementById("size").options[document.getElementById("size").selectedIndex].value;
mats.price = parseFloat($('#priceto').val()).toFixed(2);
mats.quantity = parseInt($('#quant').val());
materialsUsed.push(mats);

4 个答案:

答案 0 :(得分:1)

如果您只想将它​​们作为GET值加载到URL中,只需使用location.href直接在URL中设置它们。然后在PHP中使用$ __ GET(IE:$ __ GET [' mat'])来获取值。

var baseURL = "http://yourdomain.com";
window.location.href = baseURL + "?mat=" + mats.name + "&thick=" + mats.thick etc...

答案 1 :(得分:1)

首先,您必须正确准备mats数组并将materialsUsed数组转换为JSON格式。然后你可以像下面这样调用ajax函数,将它发送到php脚本。

var jsonString = JSON.stringify(materialsUsed);
   $.ajax({
        type: "GET",
        url: "your_script.php",
        data: {data : jsonString}, 

        success: function(){
            alert("Successfully sent the data!");
        }
    });

your_script.php文件中,您可以执行此操作以提取阵列。

$data = json_decode(stripslashes($_GET['data']));
  

重要

     

使用GET方法时,数据量(网址长度)为   有限。所以,如果你的materialUsed数组太大,你应该使用   而是POST方法。

答案 2 :(得分:0)

我认为你正在寻找的是对你的php脚本进行ajax调用,提供你的js数组作为它的数据。 您应该在javascript中监听表单提交事件,并启动对提供数组的PHP脚本的AJAX调用。您可以使用GET通过URL(查询字符串)发送数组,或使用POST(您在AJAX调用中指定的选项)在请求正文中发送数组。然后你只需要在你的php脚本中检索你的数组就可以随心所欲地使用它。

我建议您在表单提交事件和javaScript中的AJAX calls上阅读更多内容。

快速提示:如果你有可能这样做,尝试使用jQuery,因为AJAX更容易与jQuery一起使用。

答案 3 :(得分:0)

您正在尝试使用关联数组,但据我所知,它在Javascript中是不可能的。

我说最好的方法是创建一个对象,解析为json并发送到php。看起来不那么难。