从POST获取复选框数组值

arb*_*les 9 html php forms arrays post

我发布了一系列复选框.而我无法让它工作.我没有在foreach循环中包含正确的语法来保持简单.但它正在发挥作用.我通过尝试用文本字段而不是复选框来做同样的事情来测试,并且它与文本字段一起工作.

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

这是不起作用的部分.它回应'邀请'而不是数组.

<?php
    if(isset($_POST['invite'])){
$invite = $_POST['invite'];
echo $invite;
}
Run Code Online (Sandbox Code Playgroud)

小智 22

你的$ _POST数组包含了invite数组,所以把它读出来

<?php
if(isset($_POST['invite'])){
  $invite = $_POST['invite'];
  echo $invite;
}
?>
Run Code Online (Sandbox Code Playgroud)

因为它是一个数组而无法工作.您必须遍历数组才能获得所有值.

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


Tom*_*nti 12

我刚刚使用了以下代码:

<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);
    }
?>
Run Code Online (Sandbox Code Playgroud)

当我选中这两个框时,输出为:

Array ( [0] => user1 [1] => user2 )
Run Code Online (Sandbox Code Playgroud)

我知道这并没有直接回答你的问题,但它为你提供了一个可以参考的工作示例,希望能帮助你解决问题.


Ecr*_*lis 5

查看implode()函数作为替代方案.这会将数组转换为列表.第一个参数是您希望如何分离项目.在这里,我使用了一个带有空格的逗号.

$invite = implode(', ', $_POST['invite']);
echo $invite;
Run Code Online (Sandbox Code Playgroud)