Флажки не публикуются в PHP


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

<table width="200" border="0">
 <tr>
  <td><img src="images/image1.jpg" ></td>
  <td><img src="images/image2.jpg" ></td>
  <td><img src="images/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

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

Author: Funk Forty Niner, 2015-05-15

1 answers

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

Взгляните на это: http://www.html-form-guide.com/php-form/php-form-checkbox.html


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

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

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

Т.е.: 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="images/avatars/image1.jpg" ></td>
    <td><img src="images/avatars/image2.jpg" ></td>
    <td><img src="images/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
Author: Guillaume Munsch, 2017-05-23 12:21:52