我是一个非常非常新的php,需要帮助。
我已经建立了一个多页表单。此表单上的大多数输入都可以由用户动态创建。
下面是codepen
上的一个工作示例当多维数组中的数据传递到csv表时,我想以以下方式排列它:Array ( [0] => Position [1] => Unit [2] => Unit President )
,
这样,如果用户动态地添加两个或三个输入,将更容易看到每个条目。
到目前为止,我只能像这样过滤数组:
$unitLevelPosition = $_POST["unitLevelPosition"];
$unitLevelPositionValues = "";
foreach( $unitLevelPosition as $unitPositionValue)
{
$educationHistoryValues .= $unitPositionValue;
}
然后将数组变量添加到打印到cvs的其他变量中,如下所示:
$csvdata = $firstName。","。lastName美元。","。educationHistoryValues美元;我追求的东西可能实现吗?如果有,有人能帮我开始吗?
首先,您应该更改表单的name-attribute。
用unitLevelPosition[]代替unitLevelPosition[0][name_of_field]。对于每一个新的输入字段,索引增加1。例如unitLevelPosition [1] [name_of_field]。然后你将得到一个数组,它应该是这样的:
[
0 => [
'position' => value_of_input,
'unit_president' => value_of_input,
... and so on ...
],
1 => [
'position' => value_of_input,
'unit_president' => value_of_input,
... and so on ...
]
]
你要做的下一件事。使用php函数fputcsv (http://php.net/manual/de/function.fputcsv.php)创建csv文件
这边有一个很好的例子,你可以用它来创建你的csv文件。
总之:
$fp = fopen('file.csv', 'w');
foreach( $unitLevelPosition as $fields)
{
fputcsv($fp, $fields);
}
fclose($fp);
你需要的是这样的东西:
if (!empty($_POST['position'])) {
$fp = fopen('file.csv', 'w');
foreach ($_POST['position'] as $key => $position) {
//Do validation here...
$fields = [
'position' => $position,
'unit' => $_POST['unit'][$key],
'president' => $_POST['president'][$key],
'date' => $_POST['date'][$key],
];
fputcsv($fp, $fields, ',');
}
fclose($fp);
}
但是像这样修改输入名称:
<input type="text" name="position[]" value="" >
<input type="text" name="unit[]" value="" >
<input type="text" value="president[]">
<input type="text" value="date[]">