这是一个脚本。
它提供了一些选择输入,允许从各种类型的选项中进行选择。按下提交按钮时,它会在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);
答案 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。看起来不那么难。