带有相关输入的HTML表单

时间:2011-07-05 22:53:21

标签: php html

我有一个系统允许用户从n个复选框中选择多个复选框,但还需要两个与每个复选框关联的输入。这是一个消息,一个日期和一个时间。当我发布要由PHP脚本处理的数据时,我希望能够访问每组复选框和其他两个输入,这样我就可以看到用户为每条消息填写的日期和时间他们选择了。我无法想出一种方法来将两个其他输入与每个复选框相关联。

任何想法如何做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以在html输入中使用数组,如此...

<input type="text" name="messages[1][message]" value="herp" />
<input type="text" name="messages[1][date]" value="24th April" />
<input type="text" name="messages[1][time]" value="13:00" />

<input type="text" name="messages[2][message]" value="derp" />
<input type="text" name="messages[2][date]" value="26th April" />
<input type="text" name="messages[2][time]" value="18:00" />


<?php

    $messages = $_REQUEST['messages'];
    foreach ($messages as $messageId => $value){
        echo $value['message'];
        echo $value['date'];
        echo $value['time'];
    }

答案 1 :(得分:0)

您的HTML:

<input type="checkbox" name="car" />
<input type="text" name="msg_car" value="Car message" />
<input type="text" name="date_car" value="Car date" />

<input type="checkbox" name="bike" />
<input type="text" name="msg_bike" value="Bike message" />
<input type="text" name="date_bike" value="Bike date" />

<input type="checkbox" name="train" />
<input type="text" name="msg_train" value="Train message" />
<input type="text" name="date_train" value="Train date" />

<input type="checkbox" name="plane" />
<input type="text" name="msg_plane" value="Plane message" />
<input type="text" name="date_plane" value="Plane date" />

您的PHP脚本:

$array = array("car", "bike", "train", "plane");

for ($i = 0; $i < count($array); $i++) {
    if (isset($_POST[$array[$i]])) {
         //Checkbox was checked, get values
         $msg  = "";
         $date = "";

         $msg_id  = "msg_" . $array[$i];
         $date_id = "date_" . $array[$i];

         if (isset($_POST[$msg_id]))
              $msg  = $_POST[$msg_id];
         if (isset($_POST[$date_id]))
              $date = $_POST[$date_id];

    }
}

我认为这样的事情应该有效。我没有测试它..如果这个例子仍然包含一些小错误,请原谅我。