Я новичок в php. Я хотел бы опубликовать несколько значений флажка в электронном письме из формы, когда они будут выбраны. Только последний проверенный флажок проходит через электронную почту, даже если все они выбраны в форме. Я попробовал много решений, которые я нашел для этого, и не могу найти то, что работает для меня.
Что я делаю не так?
HTML:
<input type="checkbox" name="product-types-owned[]" value="Cast_Iron" /> <input type="checkbox" name="product-types-owned[]" value="Braisers" /> <input type="checkbox" name="product-types-owned[]" value="Ovens" /> <input type="checkbox" name="product-types-owned[]" value="Skillet" />
PHP:
$sendto = "email@email.com"; $usermail = $_POST['Email']; $firstname = nl2br($_POST['First_name']); $lastname = nl2br($_POST['Last_name']); $address1 = nl2br($_POST['Address1']); $address2 = nl2br($_POST['Address2']); $city = nl2br($_POST['City']); $state = nl2br($_POST['State']); $zip = nl2br($_POST['Zip_Code']); $phone = nl2br($_POST['Telephone']); $ownership = nl2br($_POST['product-types-owned']); $subject = "Product Registration"; $headers = "From: " . strip_tags($usermail) . "\r\n"; $headers .= "Reply-To: ". strip_tags($usermail) . "\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html;charset=utf-8 \r\n"; $msg = "<html><body style='font-family:Arial,sans-serif;'>"; $msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Product Registration</h2>\r\n"; $msg .= "<p><strong>Sent by:</strong> ".$usermail."</p>\r\n"; $msg .= "<p><strong>First Name:</strong> ".$firstname."</p>\r\n"; $msg .= "<p><strong>Last Name:</strong> ".$lastname."</p>\r\n"; $msg .= "<p><strong>Address:</strong> ".$address1."</p>\r\n"; $msg .= "<p><strong>Address Line 2:</strong> ".$address2."</p>\r\n"; $msg .= "<p><strong>State:</strong> ".$state."</p>\r\n"; $msg .= "<p><strong>Zip:</strong> ".$zip."</p>\r\n"; $msg .= "<p><strong>Telephone:</strong> ".$phone."</p>\r\n"; $msg .= "<p><strong>Products Own or Intend to Own:</strong> ".$ownership."</p>\r\n"; $msg .= "</body></html>";
Я попробовал решение здесь, а также изменил
$ ownership = nl2br ($ _ POST ['тип продукта принадлежит]];
в
$ ownership = nl2br (implode (',', $ _POST ['product-types-owned']));
и я получаю сообщение об ошибке: Warning: implode () [function.implode]: неверные аргументы переданы в /home/content/99/11039499/html/scripts/warranty.php в строке 24
Пожалуйста, помогите, я так расстроен.
$ownership = nl2br($_POST['product-types-owned']);
product-types-owned
будет представлять собой массив выбранных флажков. Вам нужно будет взорвать это, прежде чем делать что-нибудь еще:
$ownership = nl2br(implode(',', $_POST['product-types-owned']));
Прямо сейчас вы пытаетесь использовать nl2br для массива, который не будет работать. nl2br ожидает строку, поэтому php будет вводить массив в стандартное строковое представление, которое буквально является словом Array
.