2015-08-10 3 views
0

У меня есть форма для отправки php-скрипта. Контекст веб-сайта заставляет меня добавлять повторяющиеся поля формы нажатием кнопки «Пользователь». Как правильно обрабатывать ввод формы? Например, у меня есть форма транспортного средства, и когда пользователь добавляет автомобиль, я добавляю копию нескольких групп групп автомобилей. Эти входы формы имеют одно и то же «имя», и там, где php пытается получить доступ к двум или более входам одного имени в моем скрипте.
Должен ли я хранить входы как массив каким-то образом?Как обрабатывать повторяющиеся входные данные в PHP?

Вот мой сценарий:

<?php 
    $admin_email = "[email protected]"; 
    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $address = $_POST['address']; 
    $carrier = $_POST['carrier']; 
    $yes = $_POST['yes']; 
    $no = $_POST['no']; 

    $renewal = $_POST['renewal']; 
    $homephone = $_POST['homephone']; 
    $cellphone = $_POST['cellphone']; 
    $year = $_POST['year']; 
    $makemodel = $_POST['makemodel']; 
    $twowd = $_POST['twowd']; 
    $fourwd = $_POST['fourwd']; 
    $vin = $_POST['vin']; 
    $damage = $_POST['damage']; 
    $payment = $_POST['payment']; 
    $umuim = $_POST['umuim']; 
    $drivername = $_POST['drivername']; 
    $driverbday = $_POST['driverbday']; 
    $ssn = $_POST['ssn']; 
    $dlnumber = $_POST['dlnumber']; 
    $dlstate = $_POST['dlstate']; 
    $violations = $_POST['violations']; 
    $email_body = "Auto Quote\n From: $email \n $address, $carrier, $yes, $no, $carrier, $renewal, $homephone, $cellphone, $year, $makemodel, $twowd, $fourwd, $vin, $damage, $payment, $umuim, $drivername, $driverbday, $ssn, $dlnumber, $dlstate, $violations)"; 

    mail($admin_email, "Auto Quote Request", $email_body); 

    echo "Thank you for contacting us!"; 
    ?> 

Так что, когда я нажимаю «добавить кнопку автомобиля» я прилагаю копию формы групп на моей форме от $ года до $ umuim. Является ли мой текущий код способным справиться с этим? У меня не было никаких ошибок при проверке вручную (я не вижу, как выглядит электронное письмо, поскольку у меня нет почтового сервера в разработке), но в конце работает эхо-отчет.

Одна из проблем, которые я мог видеть, - это просто сбросить переменную после получения второго ввода. Должен ли я каким-то образом использовать массив? Благодарю.

+0

ну вторят '$ email_body', а если вы хотите видеть, что в письме – RiggsFolly

+0

Любое поле, что с a имеет более одного отправленного значения, должен быть сконфигурирован в HTML-форме в виде массива и, конечно же, проанализирован в PHP на стороне сервера как массив из 1 или более элементов. Вы всегда можете запустить цикл foreach в элементе, который был POSTed как массив. –

ответ

0

В HTML, когда вы хотите несколько полей с одинаковым именем использовать

<input type="text" name="fieldname[]" ....> 
<input type="text" name="fieldname[]" ....> 
<input type="text" name="fieldname[]" ....> 

, когда данные размещены на PHP должно быть поле в массиве $ _POST называется fieldname$_POST['fieldname']

Вы то процесс, который нравится

foreach ($_POST['fieldname'] as a_name) { 

    echo $a_name; 

} 
+0

Что произойдет, если я попытаюсь обработать имя поля без цикла foreach? – user5198569

+0

Игнорировать первый комментарий. Итак, эти петли просто заменили $ fieldname = $ _POST ['fieldname']? – user5198569

+0

Нет, цикл будет проходить через каждый элемент массива '$ _POST ['fieldname']', поэтому вы можете сделать что-то с каждым из опубликованных значений. –

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