checkbox — Флажки не публикуются в переполнении стека

Поэтому я пытаюсь получить значение из 3-х флажков, которые позже будут отправлены в базу данных, но по какой-то причине они не публикуются в PHP при тестировании.

<table width="200" border="0">
<tr>
<td><img src="https://web-answers.ru/wp-content/uploads/2019/02/image1.jpg" ></td>
<td><img src="https://web-answers.ru/wp-content/uploads/2019/02/image2.jpg" ></td>
<td><img src="https://web-answers.ru/wp-content/uploads/2019/02/image3.jpg" ></td>
</tr>
<tr>
<td><input type="checkbox" id="checkbox65" class="css-checkbox med"     name="avatar" value="image1"/>
<label for="checkbox65" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox66" class="css-checkbox med" name="avatar" value="image2"/>
<label for="checkbox66" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox67" class="css-checkbox med" name="avatar" value="image3"/>
<label for="checkbox67" class="css-label med elegant"  ></label></td>
</tr>
</table><br>

и я публикую на другой странице:

<?php
if(isset($_POST['submit'])){$avatar=$_POST['avatar'];}
echo $avatar; ?>

но я получаю

 Undefined index: avatar on line 14

У меня есть теги формы, все правильно, вот как это другой вопрос, все остальное на странице публикуется правильно, кроме этой одной вещи

2

Решение

Я думаю, что вы должны положить <form> пометить ваши входы. И в этом теге вы должны указать (как действие) php-файл, который будет обновлять данные;)

Посмотрите на это: http://www.html-form-guide.com/php-form/php-form-checkbox.html


Редактировать:

Согласно ваш оригинальный пост, Вы должны рассматривать свои флажки как массив.

Sidenote: Вы всегда должны делать правку под своим оригинальным вопросом и помечать как правку, чтобы не переписать оригинал.

т.е .: name="avatar[]" добавление скобок вокруг каждого элемента с одинаковым атрибутом имени. Затем вам нужно использовать foreach цикл, используя условный оператор и помещая массив POST для него и его переменную внутри этого цикла.

<form action="reg_test.php" method="post">
Username:<br>
<input type="text" name="username"><br>

Password:
<input type="password" name="password" ><br>

E-mail:
<input type="text" name="email" ><br>

Avatar:

<table width="200" border="0">
<tr>
<td><img src="https://web-answers.ru/wp-content/uploads/2019/02/avatars/image1.jpg" ></td>
<td><img src="https://web-answers.ru/wp-content/uploads/2019/02/avatars/image2.jpg" ></td>
<td><img src="https://web-answers.ru/wp-content/uploads/2019/02/avatars/image3.jpg" ></td>
</tr>
<tr>
<td><input type="checkbox" id="checkbox65" class="css-checkbox med" name="avatar[]" value="image1"/>
<label for="checkbox65" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox66" class="css-checkbox med" name="avatar[]" value="image2"/>
<label for="checkbox66" class="css-label med elegant" /></label></td>
<td><input type="checkbox" id="checkbox67" class="css-checkbox med" name="avatar[]" value="image3"/>
<label for="checkbox67" class="css-label med elegant"  ></label></td>
</tr>
</table><br>
<input type="submit" value="Register" name="submit">
</form>

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

if(isset($_POST['submit'])){
$username=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];

if(isset($_POST['avatar'])){

$avatar=$_POST['avatar'];

foreach ($avatar as $avatars=>$value) {
echo "Avatars : ".$value."<br />";
}

echo $username.",".$password.",".$email."</br>";

}

} // brace for if(isset($_POST['submit']))

?>
5

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

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

По вопросам рекламы [email protected]