创建并将数组[Array []]发布到PHP - fputcsv()

时间:2014-10-28 03:49:33

标签: php jquery arrays csv fputcsv

我一直在努力......

我需要发布到php页面来创建一个csv文件。问题是,我无法弄清楚如何创建一个合适的数组,然后将其发布到php进行处理。

我的php页面有一个函数,它遍历发布的值并写入csv。

function outputCSV($data) {
    $output = fopen("php://output", "w");
    foreach ($data as $row) {
        fputcsv($output, $row);
    }
    fclose($output);
}

我通过这样的帖子获得$data ......

$csvData = $_POST['csvData'];

然后运行该功能......

outputCSV($csvData);

发布时,收到错误Warning: Invalid argument supplied for foreach()

我知道它与原始(帖子后)页面中的数组有关,或者我是如何发送它的。

以下是数组应该如何格式化(如果我在php页面中设置它然后运行该函数,则该数组有效)

outputCSV(
    array(
        array("name 1", "age 1", "city 1"),
        array("name 2", "age 2", "city 2"),
        array("name 3", "age 3", "city 3")
    )
);

现在,在我的post-from页面上,我循环遍历一些值并构建变量var newData = [];,其中包含一个数组作为值的数组,当我在控制台中打印时,我得到了...

Array [ Array[3], Array[3], Array[3] ]

对我来说,这看起来是正确的,但我最难将这个变量传递给php页面才能正确处理。

我尝试了很多东西,比如用变量设置输入值,然后发布。

<input id="csv" name="csvData[]"/>
$('#csv').val(newData);

我尝试过使用jquery&#39; s $.post这样

$.post("csvsave.php",{'csvData': newData});

再加上其他一些方法虽然我只是浪费你的时间列出它们,因为我认为上述两种方式中的任何一种都应该有效,而且我可能会遗漏一些简单的东西。

有时我得到一个不完整的结果(比如只有一个数组)和php print_r,有时我得到csv中的所有值但只有一行,但它总是抛出错误我如上所述,甚至有时会将错误写入csv页面。

我现在非常疲惫,任何帮助或指导都会受到高度赞赏。 先感谢您! 詹姆斯

ADDITION

如果我对发布的值进行了var_dump,那么我就明白了

array(1) { [0]=> string(59) "name 1,age 1,city 1,name 2,age 2,city 2,name 3,age 3,city 3" }

由于某种原因,我正在丢失内部数组

0 个答案:

没有答案