【发布时间】:2017-09-01 13:07:33
【问题描述】:
我在 Javascript 函数中创建了一个数组。现在,当我按下 html 页面上的按钮时,我想将此数组传递给 php 脚本。我试图通过它调用以下函数:
function transferarray(param){
$.ajax({
type:"POST",
url:'selection.php',
data:{param:param}
});
HTML 链接:
<a href='selection.php' id="counter" onclick="transferarray(arr)"></a>
(arr: 数组名)
但这不起作用(注意:未定义的索引:param in C:\xampp\htdocs\DataDict\selection.php 在第 17 行)。
数组 arr 甚至可以这样访问吗?我怎样才能使它可以访问?
请查看下面创建数组的代码:
var n = 0;
var arr = new Array();
function selectionarray(fish){
var counter = document.getElementById("counter");
var table = document.getElementById("variables");
fish2=parseInt(fish)+1;
var row = table.rows[parseInt(fish2)];
squid = n*(parseInt(fish2));
for(c=0; c<=squid;c++){
if(typeof arr[c]==='undefined'){
arr[c] = new Array();
}
}
checkid='check'+fish;
if (document.getElementById(checkid).checked){
for(var j=0, col;col=row.cells[j];j++){
arr[squid][j] = col.innerText;
}
n = n+1;
counter.innerHTML = "selected Items: " + n;
}else{
n = n-1;
squid = n*(parseInt(fish2));
delete arr[squid];
counter.innerHTML = "selected Items: " + n;
}
};
Javascript 从一个表中创建数组,其中复选框是由另一个函数动态创建的,这就是为什么我必须使用该变量来检查元素 ID。
【问题讨论】:
-
您如何在 php 中访问该参数?
-
如果你发布了一个php错误,你至少也应该发布相关的php代码。
-
显示
selection.php文件的代码 -
为此使用除超链接以外的其他内容(例如,可以使按钮看起来像超链接,并且几乎任何元素都可以单击)。几乎可以肯定的是,超链接正在做默认情况下超链接所做的事情,并作为整页 GET 请求导航到 selection.php,所以您看到的输出是像这样访问 selection.php 的结果,而不是而不是 ajax 调用(如果它开始了,一旦你离开原始页面就会被取消)。因此它无法读取参数,因为它不是通过此请求传入的。
-
或者,使用超链接,但使用带有
event.preventDefault()的jquery 不显眼的事件处理程序来处理点击事件。这将停止超链接的正常行为并允许 ajax 调用继续进行。见api.jquery.com/event.preventdefault。如果您实际上不希望它以正常方式导航到任何地方,也无需将selection.php放入超链接的href。
标签: javascript php jquery html arrays