我有一个函数,每次单击按钮到localStorage时都会保存一个数组。按钮将被多次单击,我需要将这个数组列表以某种方式放入PHP中,这个文件位于该文件的另一页上。
谢谢
a.js (此函数侦听页面的onLoad)
function doFirst(){
var button = document.getElementById("button");
button.addEventListener("click", save, false);
var buttons = document.getElementById("clear");
buttons.addEventListener("click", clear, false);
var buttonss = document.getElementById("submittodb");
buttonss.addEventListener("click", toPHP, false);
$.ajax({
method: 'post',
dataType: 'json',
url: 'edit.php',
data: { items: oldItems }, //NOTE THIS LINE, it's QUITE important
success: function() {//some code to handle successful upload, if needed
}
});
}
function save(){
var oldItems = JSON.parse(localStorage.getItem('itemsArray')) || [];
var newItem = {
'num': document.getElementById("num").value,
'methv': document.getElementById("methv").value,
'q1': document.getElementById("q1").value,
'q2':document.getElementById("q2").value,
'q3':document.getElementById("q3").value,
'q4':document.getElementById("q4").value,
'comm':document.getElementById("comm").value,
};
oldItems.push(newItem);
localStorage.setItem('itemsArray', JSON.stringify(oldItems));}
edit.php
$parsed_array = json_decode($_POST['items']);
and i get the error: Notice: Undefined index: items in /home/project/edit.php on line 9
答案 0 :(得分:4)
为了将此数组传递给PHP,您需要:
如果你正在使用jQuery
(如果你不是你应该开始 - 这是非常方便的工具)步骤(1)和(2)就像
$.ajax({
method: 'post',
dataType: 'json',
url: 'the URL of PHP page that will handle the request',
data: { items: oldItems }, //NOTE THIS LINE, it's QUITE important
success: function() {//some code to handle successful upload, if needed
}
});
在PHP中,您可以使用
解析传递的数组$parsed_array = json_decode($_POST['items']);
{ items: oldItems }
和$_POST['items']
之间存在直接关联。您在javascript调用中为参数指定的变量名称将是$_POST
数组中最后一个键的名称。因此,如果您只是在javascript中使用data: oldItems
,那么您的所有实体都会分散在$_POST
数组周围。
更多关于$.ajax和json_decode以供参考。
答案 1 :(得分:0)
您可以创建一个AJAX函数(使用jQuery)并将JSON数据发送到服务器,然后使用PHP函数/方法对其进行管理。
基本上,您需要将数据从客户端(浏览器)发送回数据库托管的服务器。
答案 2 :(得分:0)
调用JSON.stringify(oldItems);
创建json字符串
使用AJAX执行POST请求。
可能最简单的方法是使用jQuery:
$.post('http://server.com/url.php', { items: JSON.stringify(oldItems) }, function(response) {
// it worked.
});