我正在尝试使用.csv函数处理我的表单提交值到fputcsv文件。我没有收到任何错误,也没有将表单值保存到data.csv文件中。有人能看出我做错了什么吗?
表单
<label for="location">How many Locations?</label>
<input id="location" name="loc" /><br />
<select id="when" name="day">
<option value="Sunday">Sunday</option>
<option value="Monday">Monday</option>
<option value="Tuesday">Tuesday</option>
<option value="Wednesday">Wednesday</option>
<option value="Thursday">Thursday</option>
<option value="Friday">Friday</option>
<option value="Saturday">Saturday</option>
</select>
<input type="checkbox" id="osecom" name="osecom" value="Yes" />
<label for="osecom">Online</label>
<input type="checkbox" id="item1yes" name="item1yes" value="Yes" /> Yes
<input type="checkbox" id="item1no" name="item1no" value="No" /> No<br />
<label for="chkitem1">mobile</label>
<input type="checkbox" id="item2yes" name="item2yes" value="Yes" /> Yes
<input type="checkbox" id="item2no" name="item2no" value="No" /> No<br />
<label for="chkitem2">policy? </label>
<input type="submit" title="Submit Form" value="" />php代码
if(isset($_POST['submit'])) {
$data = implode(',', $_POST);
if( $fp = fopen('data.csv', 'a') ){
fputcsv($fp, $data);
}
fclose($fp);
}发布于 2012-08-17 20:22:08
不要使用内爆( ',‘,$_POST)!
$_POST是数组,fputcsv()期望第二个param是数组,而不是字符串!
最好使用以下代码:
if(isset($_POST['submit'])) {
$data = array_values($_POST); // get only values
if( $fp = fopen('data.csv', 'a') ){
fputcsv($fp, $data);
}
fclose($fp);
}请注意,仅保存值会导致在$_POST开关位置读取csv参数时出现问题,因此最好保存带有标题的第一行:
if(isset($_POST['submit'])) {
$data = array_values($_POST); // get only values
$headers = array_keys($_POST); // keys are headers
if( $fp = fopen('data.csv', 'a') ){
fputcsv($fp, $headers);
fputcsv($fp, $data);
}
fclose($fp);
}编辑:我注意到,在您的表单中,您正在使用复选框,其中单选按钮更适合“移动”字段。还有“政策”
https://stackoverflow.com/questions/12012287
复制相似问题