2013-07-08 6 views
2

У меня есть PHP-процедура, которая обрабатывает форму и выводит значения в файл CSV. Я использую array_keys(), чтобы создать строку заголовка (пропущена, если она есть). Все работает отлично, за исключением того, что конечный заголовок «submit», потому что, конечно, моя форма включает кнопку «Отправить». Таким образом, данные заканчивает тем, как это:Пропустить кнопку Submit в array_keys

name,email,cell,dob,study,submit 
"Temp One",[email protected],646-325-1111,1995-03-31,8,Submit 
"Temp Two",to[email protected],646-325-2222,1995-03-31,4,Submit 

Как опустить кнопку отправки и из заголовка и данных?

Вот мой код:

if(isset($_POST['submit'])) { 
    $data = array_values($_POST); // get only values 
    $headers = array_keys($_POST); // keys are headers 
    if($fp = fopen('data.csv','a+')) { 
     $line = fgets($fp); 
     if(!$line == $headers) { 
       fputcsv($fp, $headers); 
       fputcsv($fp, $data); 
     } 
     else 
     { 
      fputcsv($fp, $data); 
     } 
     fclose($fp); 
     header('Location: thanks.php'); 
    } 
} 
+0

Существует некоторая польза в чтении через темы РНР инструкции, когда вы планируете использовать язык немного больше. Например, раздел о переменных и массиве: http://php.net/variables http://php.net/arrays – hakre

ответ

6

Удалите его из массива ...

$post = $_POST; 
unset($post['submit']); 
$data = array_values($post); // get only values 
$headers = array_keys($post); // keys are headers 
+1

приятный! поэтому +1 – michi

+0

Работает отлично - спасибо! –

0

Отбросьте название от кнопки Submit в вашем HTML

и вместо

if(isset($_POST['submit'])) 

использование

if($_SERVER["REQUEST_METHOD"] == "POST") 
0

array_pop() будет удалить последний элемент массива:

$data = array_pop(array_values($_POST)); // get only values 
$headers = array_pop(array_keys($_POST)); // keys are headers 
Смежные вопросы