получение значения ячейки checkbox из POST

Я размещаю массив флажков. и я не могу заставить его работать. Я не включил правильный синтаксис в цикл foreach, чтобы он был простым. но он работает. я тестировал, пытаясь сделать то же самое с текстовым полем вместо флажка, и он работал с текстовым полем.

<form method="post"> <?php foreach{ echo' <input id="'.$userid.'" value="'.$userid.'" name="invite[]" type="checkbox"> <input type="submit">'; } ?> </form> 

вот часть, которая не работает. он повторяет «приглашение» вместо массива.

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

Ваш массив $ _POST содержит массив приглашений, поэтому он считывает его как

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

не будет работать, поскольку это массив. Вам нужно пройти через массив, чтобы получить все значения.

 <?php if(isset($_POST['invite'])){ if (is_array($_POST['invite'])) { foreach($_POST['invite'] as $value){ echo $value; } } else { $value = $_POST['invite']; echo $value; } } ?> 

Я просто использовал следующий код:

 <form method="post"> <input id="user1" value="user1" name="invite[]" type="checkbox"> <input id="user2" value="user2" name="invite[]" type="checkbox"> <input type="submit"> </form> <?php if(isset($_POST['invite'])){ $invite = $_POST['invite']; print_r($invite); } ?> 

Когда я проверил обе коробки, выход был:

 Array ( [0] => user1 [1] => user2 ) 

Я знаю, что это напрямую не отвечает на ваш вопрос, но дает вам рабочий пример для ссылки и, надеюсь, поможет вам решить проблему.

Проверьте функцию implode () как альтернативу. Это преобразует массив в список. Первый параметр – это то, как вы хотите, чтобы элементы были разделены. Здесь я использовал запятую с пробелом после нее.

 $invite = implode(', ', $_POST['invite']); echo $invite; 
 // if you do the input like this <input id="'.$userid.'" value="'.$userid.'" name="invite['.$userid.']" type="checkbox"> // you can access the value directly like this: $invite = $_POST['invite'][$userid]; 

Поскольку ваш элемент <form> находится внутри цикла foreach, вы генерируете несколько форм. Я предполагаю, что вы хотите несколько флажков в одной форме.

Попробуй это…

 <form method="post"> foreach{ <?php echo' <input id="'.$userid.'" value="'.$userid.'" name="invite[]" type="checkbox"> <input type="submit">'; ?> } </form>