2016-03-14 3 views
0

Я экспортирую файл .csv, используя php, но я столкнулся с некоторой проблемой, например, я не могу установить флажок checkbox и как установить заголовок в верхней строке?Как экспортировать флажок check check в csv?

Вот мой HTML

<form id="form1" name="form1" method="post" action="post.php"> 
    <table width="597" class="formatTblClass"> 
     <tr> 
      <th colspan="4"></th> 
     </tr> 
     <tr> 
      <td width="99"><span>First Name</span></td> 
      <td width="217"><input class="" type="text" name="fn" id="fn" /></td> 
      <td width="99"><span>Last Name</span></td> 
      <td width="211"><input class="" name="ln" type="text" id="ln" /></td> 
     </tr> 
     <tr> 
      <td>Phone</td> 
      <td><input class="" type="text" name="phone" id="phone" /></td> 
      <td>&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td colspan="4">Check groups that you would like to receive updates about</td> 
     </tr> 
     <tr> 
      <td><input name="intrest[]" type="checkbox" id="1" value="a" /></td> 
      <td>A</td> 
      <td><input name="intrest[]" type="checkbox" id="4" value="b" /></td> 
      <td>B</td> 
     </tr> 
     <tr> 
      <td><input name="intrest[]" type="checkbox" id="2" value="c" /></td> 
      <td>C</td> 
      <td><input name="intrest[]" type="checkbox" id="5" value="d" /></td> 
      <td>D</td> 
     </tr> 
     <tr> 
      <td><input name="intrest[]" type="checkbox" id="3" value="e" /></td> 
      <td>E</td> 
      <td>&nbsp;</td> 
      <td>&nbsp;</td> 
     </tr> 
     <tr> 
      <td colspan="4"> 
       <div align="center"> 
        <input type="submit" name="Submit" id="Submit" value="Submit" /> 
        <input type="reset" name="Reset" id="button" value="Reset" /> 
       </div> 
      </td> 
     </tr> 
    </table> 
</form> 

Вот мой PHP код:

<?php 
    if (isset($_POST['intrest'])) { 
     $name = $_POST['intrest']; 

     echo "You chose the following color(s): <br>"; 
     foreach ($name as $color) { 
      $cvsData = $name; 
     } 
    } 
    $fn = $_POST['fn']; 
    $ln = $_POST['ln']; 
    $phone = $_POST['phone']; 
    $abc = (isset($_POST['1'])) ? $_POST['1'] : 'No'; 


    if (empty($fn) || empty($ln) || empty($phone)) { 
     $message = 'Fill in areas in red!'; 
     $aClass = 'errorClass'; 
    } 

    $cvsData = $phone . "," . $fn . "," . $ln . "," . $phone . "\n"; 

    $fp = fopen("formTest.csv", "a"); 
    if ($fp) { 
     fwrite($fp, $cvsData); 
     fclose($fp); 
    } 
?> 

Я explaing, что мой код делает Initally я не файл CSV так, когда я нажимаю первый время моего кода создаст новый файл csv и добавит значение формы. Когда я нажимаю второй раз, мой код добавляет данные в новую строку. Это то, что я точно хочу. Но основная проблема заключается в том, что я не могу добавить значение checkbox в CSV-файл, а вторая проблема заключается в том, как добавить заголовок в верхнюю строку?
Заранее благодарен

ответ

1

Вы действительно не создаете желаемые данные CSV, а переписываете одну и ту же переменную новыми данными. Посмотрите на следующий пример (не уверен, что он будет делать то, что вы хотите, но он должен дать вам идею).

<?php 
$cvsData = ""; //Initialize it as empty 
if(isset($_POST['intrest'])) { 
    $name = $_POST['intrest']; 

    echo "You chose the following color(s): <br>"; 
    foreach ($name as $color){ 
     $cvsData .= $color.",";  //Append the new color value 
    } 
} 
$fn = $_POST['fn']; 
$ln = $_POST['ln']; 
$phone = $_POST['phone']; 
$abc = (isset($_POST['1'])) ? $_POST['1'] : 'No'; 


if(empty($fn) || empty($ln) || empty($phone)){ 
$message = 'Fill in areas in red!'; 
$aClass = 'errorClass'; 
} 

$cvsData .= $phone . "," . $fn . "," . $ln . "," . $phone ."\n"; //Append the second line here 

//Add header here 
$exists = true; 
if (!is_readable("formTest.csv")) { 
    $exists = false; 
} 

$fp = fopen("formTest.csv","a"); 
if($fp){ 
    if (!$exists) { 
     fwrite("This is my awesome header\n"); 
    } 
fwrite($fp,$cvsData); 
fclose($fp); 
} 
?> 
+0

привет @apokryfos, что работает хорошо для меня, но он выдает ошибку отправить ** Массив для преобразования строки в C: \ XAMPP \ HTDOCS \ файл \ Post.php по строке 8 ** и возвращать массив в формате CSV и я хочу, если я выберу несколько попыток, это должно быть в одной колонке не ново. –

+0

Сделано небольшое обновление. – apokryfos

+0

Привет, @apokryfos спасибо, это мне очень помогает –

Смежные вопросы