通过选中的复选框获取输入type =“ text”值

时间:2019-05-21 12:27:50

标签: php post checkbox

我正在做一个小项目,如果选中该复选框,则想获取所有输入type =“ text”的值。如何运作?


<form name="test" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" target="_blank">
<?php
    foreach ($data['items'] as $key => $value) {
         echo "<label class=\"Items\">
            <input type=\"checkbox\" checked=\"checked\" name=\"items[]\" value=\"$value\">
            <input type=\"text\" value=\"$value\">
        </label>";
    }
?>
</form>

我已经尝试过了,但是只返回了我的复选框值,而不是文本值。

if(isset($_POST['items'])) {
     $items = $_POST['items'];
}

2 个答案:

答案 0 :(得分:1)

首先,要将文本框值传递给服务器,还需要给文本框起一个名字:

<input type="text" name="values[]" value="$value">

这种将文本框与复选框同步的方法是这种小技巧:

foreach ($data['items'] as $key => $value) {
     echo "<label class='Items'>
        <input type='hidden' name='keys[{$key}]' value='checkbox_isnt_selected'>
        <input type='checkbox' checked='checked' name='keys[$key]' value='$value'>
        <input type="text" name='values[$key]' value='$value'>
    </label>";
}

这样,如果未选中此复选框,则您在服务器上将获得checkbox_isnt_selected,否则,您将获得相关的$value。选中后,该复选框将覆盖隐藏输入的值。

答案 1 :(得分:0)

如果要使用$ _POST ['items']访问表单中的所有数据,请按照以下步骤操作:

<form name="test" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" target="_blank">
<?php
    foreach ($data['items'] as $key => $value) {
         echo "<label class='Items'>
            <input type='checkbox' checked='checked' name='items[$key][]' value='$value'>
            <input type='text' name='items[$key][]' value='$value'>
        </label>";
    }
?>
</form>