通过ajax

时间:2015-08-21 07:36:17

标签: javascript

Hello stackoverflow社区,我需要有关JavaScript的帮助。如何传输ID为kasce的数组?

当我在ajax_import.php文件中打印数组时,它什么都不打印。所以我的数组可能是空的。

这是我的代码:

function SubmitImp() {
    var import_tasken = document.getElementById("import_tasken");
    //import_tasken.style.display = "none";
    var kasce = document.getElementsByName("impTaskCh");
    var array = "";
    for (i = 0; i < kasce.length; i++) {
        array[i] = kasce[i].getAttribute('id');
    }
    $.ajax({
        type: "POST",
        url: 'modules/projects/ajax/ajax_import.php',
        data: {
            data: array,
        },
        success: function(data)
        {
            alert("Viskas ok!");
        }
    });
}

1 个答案:

答案 0 :(得分:2)

那里有几个问题。

首先,你没有发送一个数组,你发送一个空白字符串..在这里,你在array中放了一个字符串:

var array = "";

稍后,你这样做:

array[i] = kasce[i].getAttribute('id');

...试图为字符串的单个字符分配新值。你不能这样做,字符串在JavaScript中是不可变的;该行最终没有改变字符串。

array[i]是字符串中的单个字符。你正试图给它分配一个字符串。

要使array成为数组,请使用:

var array = [];

接下来,这可能不是问题,在这里:

data: {
    data: array,
}

...你告诉jQuery发送一个名为data的URI编码参数,其值为array。 jQuery将在toString上调用array,其中一个真正的数组最终为Array#join。这可能是你想要的,你会得到这样的东西:

firstId,secondId,thirdId

您的PHP应该将其查找为$_POST['data']

旁注:您正在成为The Horror of Implicit Globals的牺牲品,因为您从未声明过i变量。你想宣布它。