繁体   English   中英

如何通过URL发送数组并将其提取到PHP中?

[英]How to send an Array via URL and extract it in PHP?

这是一个脚本。

它提供了一些选择输入,允许从各种类型的选项中进行选择。 当按下提交按钮时,它会将数据记录在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);

如果您只是想将它们作为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...

首先,您必须正确准备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方法时,数据量(URL的长度)受到限制。 因此,如果您的materialUsed数组太大,则应该改用POST方法。

我认为您正在寻找的是对提供您的js数组作为其数据的php脚本进行ajax调用。 您应该在JavaScript中监听表单提交事件,并向提供您数组的PHP脚本发起AJAX调用。 您可以使用GET通过URL(查询字符串)发送数组,或者使用POST在请求正文中发送数组(这是您在AJAX调用中指定的选项)。 然后,您只需在php脚本中检索数组,然后随便做什么即可。

我建议您阅读有关Java脚本中的表单提交事件和AJAX调用的更多信息。

快速提示:如果有可能,请尝试使用jQuery,因为AJAX更易于与jQuery一起使用。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM