我一直在努力......
我需要发布到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" }
由于某种原因,我正在丢失内部数组