0

我有一周中的几天的复选框,如下所示:

<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"

选中的复选框打印正常,但文本输入不是。

有什么问题?

提前致谢。

4

1 回答 1

0

我认为您需要的是对字段使用索引。因此,假设选择了星期二。然后$_POST["day"][1]给你TRUE(复选框),并$_POST["day-detail"][1]给你相应的文本(即 1 用作两个字段的索引)。

实际上,索引实际上是for循环中的一个变量,因为我想象你循环遍历所有复选框。

于 2013-01-22T22:43:15.823 回答