我有几周的复选框,如下所示:
<input type="checkbox" name="day[]" id="monday" value="Monday">
<label for="monday">Monday</label>
<input name="day-detail[]" type="text" />
<input type="checkbox" name="day[]" id="tuesday" value="Tuesday">
<label for="tuesday">Tuesday</label>
<input name="day-detail[]" type="text" />
等等。
请注意,每天都有相关的输入文字。
我想知道只有选中复选框才能打印输入文本字段。我需要与其他许多复选框一起执行此操作,因此我尝试使用以下函数:
<?php
function checkboxes($checkbox_field, $default = '') {
if(isset($_POST[$checkbox_field]) and !empty($_POST[$checkbox_field])) {
$post_field = $_POST[$checkbox_field];
if (is_array($post_field)) {
if(!empty($_POST[$checkbox_field.'-detail'])) {
return join(', ', $post_field.': '.$_POST[$checkbox_field.'-detail']);
echo $_POST[$checkbox_field.'-detail'];
}
else {
return join(', ', $post_field);
echo $_POST[$checkbox_field.'-detail'];
}
}
} else {
return $default;
}
}
echo "The weekly sales are: ".checkboxes('day');
?>
这就是我要打印的内容:
星期一:
value from text input
,星期二:value from text input
“
已选中复选框,但文本输入不是。
可能出现什么问题?
提前致谢。
答案 0 :(得分:0)
我认为你需要的是使用字段的索引。所以我们假设周二被选中了。然后$_POST["day"][1]
会为您提供TRUE
(复选框),$_POST["day-detail"][1]
会为您提供相应的文字(即1用作两个字段的索引)。
实际上,索引实际上是for
循环中的一个变量,因为我想你会循环遍历所有复选框。