在 PHP 中将 Checbox 与文本字段相结合


Combine Checbox wtih Text Field in PHP

我尝试将带有文本字段的复选框值组合成一个变量,以便在我回显它时它显示正确的字段值。

我想将复选框的帖子与数量文本字段的帖子结合起来,因为我正在使用 forloop 的几个项目,但似乎无法将两个值合并为一个,以便它创建一个新的表行,该项目名称在左侧,数量在右侧。

<tr>
   <td>
      <input type="checkbox" name="check[]" value="<?php echo get_post_meta($post->ID, '_stitle', true); ?>" />
   </td>
   <td>
      <input id="quantity" name="check[quantity]" type="text" maxlength="3" /><br />
   </td>

  $data = $_POST['check'];
        foreach ($data as $value) {
        $item .= '<tr style="background: #eee;">
                <td>Item: </td>
                <td>'.$value.'</td>
            </tr>';
        }

您可能应该更改:

<input id="quantity" name="check[quantity]" type="text" maxlength="3" /><br />

自:

<input id="quantity" name="check[quantity][]" type="text" maxlength="3" /><br />

您可以标量复选框,但不标量文本字段。

此外,将两个字段与 for 相关联可能会更简单,因为每个复选框和输入字段之间的数组键是相同的。

例:

for($i=0;$i<=sizeof($_POST['check'])-2;$i++){
    $item .= '<tr style="background: #eee;">
            <td>Item: '.$_POST['check'][$i].'</td>
            <td>'.$_POST['check']['quantity'][$i].'</td>
        </tr>';
}

另外,请注意大小为 $_POST 的 -2。您必须减去数量键和偏移量,才能将终点设置为等于该值,因为您是从 0 开始计数的。