Php 获取输入类型=";“文本”;通过复选框选择值

Php 获取输入类型=";“文本”;通过复选框选择值,php,post,checkbox,Php,Post,Checkbox,我正在做一个小项目,如果选中复选框,我想获得所有输入type=“text”值。它是如何工作的 首先,要将textbox值传递给服务器,还需要为textbox指定一个名称: <input type="text" name="values[]" value="$value"> 将文本框与复选框同步的一种方法是以下小技巧: foreach ($data['items'] as $key => $value) { echo "<label class='Item

我正在做一个小项目,如果选中复选框,我想获得所有输入type=“text”值。它是如何工作的



首先,要将textbox值传递给服务器,还需要为textbox指定一个名称:

<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>";
}
foreach($data['items']as$key=>$value){
回声“
";
}

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

如果要使用$\u 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>

上述代码无效,可能由于嵌套的双引号而导致错误。我知道,谢谢,我删除了反斜杠以使其易读。我如何检查,当我更改输入类型文本中的值时,是否选中了复选框?我在我的答案下将其作为一种破解。但是,当我取消选中复选框时,值仍将通过
$items=$\u POST['keys']
传输,当我使用
$items=$\u POST['values']
时,值不会更改是的,您可以使用未选中的发送
复选框的键对其进行过滤。否则,可能与索引不匹配。