我在Javascript函数中创建了一个数组。现在,当我按下html页面上的按钮时,我想将此数组传递给php脚本。我试图通过调用以下函数来传递它:
function chimpSubscribers() {
var API_KEY = ''; // MailChimp API Key
var LIST_ID = ''; // MailChimp List ID
var SEGMENT_ID = ''; // Mailchimp Segment ID
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("Subscribers");
var dc = API_KEY.split('-')[1];
var api = 'https://'+ dc +'.api.mailchimp.com/3.0';
var memberList = '/lists/'+LIST_ID +'/segments/'+ SEGMENT_ID
options = {"headers": {"authorization": 'apikey '+API_KEY}};
var apiCall = function(endpoint){
apiResponseMembers = UrlFetchApp.fetch(api+endpoint,options);
json = JSON.parse(apiResponseMembers);
return json
}
var members = apiCall(memberList);
if (members) {
var d = new Date();
var member_count = members.member_count;
var report = [d,member_count,];
Logger.log(report);
// Clear MailChimp data in Spreadsheet
sheet.clear();
// Append MailChimp data to Spreadsheet
sheet.appendRow(["Date", "Total Subscribers"]);
sheet.appendRow(report);
}
}
HTML的链接:
function transferarray(param){
$.ajax({
type:"POST",
url:'selection.php',
data:{param:param}
});
(arr:数组的名称)
但这不起作用(注意:未定义的索引:param in 第17行的C:\ xampp \ htdocs \ DataDict \ selection.php。
阵列是否可以像这样访问?我怎么能让它可以访问?
请参阅我下面的代码创建数组:
<a href='selection.php' id="counter" onclick="transferarray(arr)"></a>
Javascript从一个表创建数组,其中复选框由另一个函数动态创建,这就是为什么我必须使用该变量来检查元素id。
答案 0 :(得分:0)
出于任何人的兴趣,我没有设法通过ajax将数组传递给&#39; selection.php&#39;页面同时通过链接同时重定向到该页面。
我现在使用该链接创建一个子html网站,并将该数组直接传递给该网站上的Javascript:
function transferarray(param){
var Openwindow = null;
Openwindow = window.open('selection.html','jav','width=800,height=900,resizable=yes');
Openwindow.dataFromParent = param;
然后在子窗口中调用该数组
<script type="text/javascript">
var dataFromParent;
function init() {
var elem = document.getElementById('selectiontable');
elem.innerHTML="";
elem.insertAdjacentHTML('beforeend', '<thead><tr><th>Modul</th><th>Name</th><th>Variablename</th><th>Type</th><th>Code</th></tr></thead><tbody>');
for (var x = 0; x < dataFromParent.length; x++) {
elem.insertAdjacentHTML('beforeend', '<tr><td>' + dataFromParent[x][0] + '</td><td>' + dataFromParent[x][1] + '</td><td>' + dataFromParent[x][2] + '</td><td>' + dataFromParent[x][3] + '</td><td>' + dataFromParent[x][4] + '</td></tr>');
}
elem.insertAdjacentHTML('beforeend','</tbody>');
}
window.onload = init;
我正在使用&#39; window.onload = init&#39;执行该功能是因为由于某种原因我无法通过
从父窗口调用它&#39; Openwindow.init();&#39;
为什么?
答案 1 :(得分:-1)
使用JSON.stringify()
序列化数组并发布数据
function transferarray(param) {
$.ajax({
type: "POST",
url: "selection.php",
data: {param: JSON.stringify(param)}
contentType: "application/json",
});
使用json_decode
将您的数据转换为一组php嵌套数组。