Php 带有相关输入的HTML表单

Php 带有相关输入的HTML表单,php,html,Php,Html,我有一个系统,允许用户从n个复选框中选择多个复选框,但还需要两个与每个复选框关联的输入。这是一条信息,一个日期和一个时间。当我发布要由PHP脚本处理的数据时,我希望能够访问每个复选框集和其他两个输入,这样我就可以看到用户为他们选择的每条消息填写的日期和时间。我很难想出一个方法将其他两个输入与每个复选框关联起来 有什么办法吗?您可以在html输入中使用数组,如下所示 <input type="text" name="messages[1][message]" value="herp" /&g

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


有什么办法吗?

您可以在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'];
    }

您的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];

    }
}
$array=数组(“汽车”、“自行车”、“火车”、“飞机”);
对于($i=0;$i

我想这样的办法应该行得通。我没有测试它。。因此,如果此示例仍然包含一些小错误,请原谅。

问题是我有n条消息,我不想使用group1或group2来识别它们。我想要一个数组,其中有3个字段,一个用于messageId,一个用于day,一个用于time。这有可能吗,我到目前为止运气不好!见编辑。。。。。。。。另外,您需要一种独特的方法来标识您的组,在本例中是一个数字ID。如果页面是由php或javascript生成的,那么使用您想要提及的任何方法都很容易生成。