如何使用PHP从循环中的复选框获取值和ID?

时间:2018-02-13 09:14:31

标签: php checkbox

我试图在提交后获取所有选中复选框的值和ID 我现在使用的循环工作并检索所有已检查的复选框,我可以回显所有那些值 但我也需要同时获取ID,我该怎么做?

我在这里找到了很多答案,但他们只检索了价值,而不是ID,我需要它们。

我的复选框设置如下:

<input type="checkbox" name="cbTrucks[]" value="1778" id="HT1234">
<input type="checkbox" name="cbTrucks[]" value="1946" id="HT4567">
<input type="checkbox" name="cbTrucks[]" value="1609" id="HT9876">

我的当前循环是:

$values = "";
if (!empty($_POST['cbTrucks'])) 
{
    foreach($_POST['cbTrucks'] as $checkbox) 
    {
        if ($values == "")
            $values = $checkbox;
        else
            $values = $values.",".$checkbox;
    }

    echo $values;
}
else
{
    echo "filter is empty";
}

这会显示所有选中复选框的值,但我也不会显示ID

这样的东西
$values = "";
$ids = "";
if (!empty($_POST['cbTrucks'])) 
{
    foreach($_POST['cbTrucks'] as $checkbox) 
    {
        if ($values == "")
            $values = $checkbox;
        else
            $values = $values.",".$checkbox;

        $ids = $ids.$checkbox.id; // I need something like this
    }

    echo $values;
}

1 个答案:

答案 0 :(得分:3)

您不能,因为默认情况下不会在POST中提交ID。我建议您将ID添加到值中,如下所示:

<input type="checkbox" name="cbTrucks[]" value="1778_HT1234">
<input type="checkbox" name="cbTrucks[]" value="1946_HT4567">
<input type="checkbox" name="cbTrucks[]" value="1609_HT9876">

然后在PHP中使用:

list($value, $id) = explode('_', $checkbox);

在循环中:

foreach($_POST['cbTrucks'] as $checkbox) {
   list($value, $id) = explode('_', $checkbox);
}