Форма обработки PHP возвращает NULL для флажков и переключателей и не отображает поле текстовой области

Я новичок в php, и был бы очень признателен за любую помощь, кто-нибудь может мне помочь с этим! Вот пример кода моего флажка:

     <legend>Fiction of Interest</legend>
<p class="group">Please check the literary genres that are of interest to you:</p>
<ul class="formList">
<li>
<input type="checkbox" name="fictioninterest[]" value="literaryfiction"  id="lfitem"<?php if ((isset($fictioninterest)) && (in_array("literaryfiction", $fictioninterest))) { echo "checked"; } ?> />
<label for="in">Literary Fiction</label>

Вот пример кода моего переключателя:

    <legend>Connecting with the Author</legend>
<p class="group">Would you like to coincide your Book Club event with the author's BlogTalk radio interview?</p>
<p class="group">
<label>
<input type="radio" name="blogtalk" value="yes" id="yesitem" <?php if ((isset($blogtalk)) && ($blogtalk==='yes')) { echo "checked"; } ?> />
<label for="yesitem">Yes</label>
<br>
<label>
<input type="radio" name="blogtalk" value="no" id="noitem" <?php if ((isset($blogtalk)) && ($blogtalk==='no')) { echo "checked"; } ?> />
<label for="noitem">Not at this time</label>
</p>

А вот мой текстовый код города:

    <p class="group">
<label for="comments" class="text">Additional comments</label>
<textarea name="comments" id="comments">
<?php if (isset($comments)) { echo $comments; } ?></textarea>
</p>

Я был бы очень признателен за любую помощь в этом! Спасибо вам большое!

Я извиняюсь — как я уже сказал, я пытаюсь научить себя php и до сих пор осваиваю даже основы. Когда моя форма обрабатывается и отправляет результаты по электронной почте, флажки возвращаются, регистрируя «ноль», хотя я выбрал несколько. Радио кнопки также возвращаются «ноль». И никакой контент не передается из моего раздела текстовой области на электронную почту. Я прошу прощения за то, что не объяснил должным образом, и еще раз, так что ценю вашу помощь!

<?php
require_once("included_functions.php");
if (($_SERVER['REQUEST_METHOD'] == 'POST') && (!empty($_POST['action']))):

$name = $_REQUEST['name'];
$email = $_REQUEST['email'];

$formerrors = false;

if ($name === '') :
$err_name = '<div class="error">Sorry, your name is a required field</div>';
endif; // input field empty

if ($email === '') :
$err_email = '<div class="error">Sorry, your email is a required field</div>';
endif; // input field empty

if (isset($_POST['comments'])) {
$comments = filter_var($_POST['comments'], FILTER_SANITIZE_STRING );
}

$formdata = array (
'name' => $name,
'email' => $email,
'fictioninterest' => $fictioninterest,
'bookclub' => $bookclub,
'newsletter' => $newsletter,
'blogtalk' => $blogtalk,
'skype' => $skype

);

if (!($formerrors)) :
$to             =   "bookclub@literaryfictionreview.com";
$subject    =       "From $name -- Signup Page";
$message    =       json_encode($formdata);

$replyto    =       "From: bookclub@literaryfictionreview.com \r\n".
"Reply-To: bookclub@literaryfictionreview.com \r\n";

if (mail($to, $subject, $message)):
$msg = "";
redirect_to("confirmation.html");
else:
$msg = "Problem sending the message";
endif; // mail form data

endif; // check for form errors

endif; //form submitted
?>

0

Решение

Ваша проблема может быть в том, что переменные типа $fictoninterest не определены. Вы только заявили $name а также $email, Так что вы можете просто добавить что-то вроде

$fictioninterest = $_REQUEST['fictioninterest'];

к вашему коду — конечно, вы должны сделать это для всех полей ввода, с которыми вы хотите работать ($comments, $blogtalk, так далее). Ох, и вы могли бы использовать $_POST вместо $_REQUEST,

-1

Другие решения

Других решений пока нет …