我张贴了一系列的复选框。我不能让它工作。为了简单起见,我没有在foreach循环中包含正确的语法。但它正在发挥作用。我尝试使用文本字段而不是复选框来做同样的事情,并且它与文本字段一起工作。
<form method="post">
<?php
foreach{
echo'
<input id="'.$userid.'" value="'.$userid.'" name="invite[]" type="checkbox">
<input type="submit">';
}
?>
</form>这是不起作用的部分。它回显'invite‘而不是数组。
<?php
if(isset($_POST['invite'])){
$invite = $_POST['invite'];
echo $invite;
}发布于 2012-05-18 23:29:31
您的$_POST数组包含invite数组,因此将其读出为
<?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;
}
}
?>发布于 2012-05-18 23:41:46
我只使用了以下代码:
<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 )我知道这不能直接回答您的问题,但它为您提供了一个可供参考的工作示例,希望能帮助您解决问题。
发布于 2015-02-03 05:05:46
查看implode()函数作为替代方法。这会将数组转换为列表。第一个参数是您想要的项目分隔方式。在这里,我使用了逗号后跟一个空格。
$invite = implode(', ', $_POST['invite']);
echo $invite;https://stackoverflow.com/questions/10655355
复制相似问题