将所有HTML表单字段(填充和空)插入到数组php中

时间:2014-11-12 12:31:36

标签: php html arrays forms

我有一个大的HTML表单,我目前将填充的html字段插入到数组中。当我打印出$_POST['rep_list'];时,它会向我提供表单中填写的键和值。但我需要的是一个包含所有表单字段的数组( 甚至是那些未填写的 )。

任何关于如何实现这个目标的建议/例子?

    <form action="insert-data.php" name="workCard" method="POST">
    <fieldset>
    <legend><h3>Repair</h3></legend>
    <table>
      <tr>
        <th>Description</th>
        <th>Front</th>
        <th>Back</th>       
      </tr>
      <tr>
        <td>tire</td>
        <td><input type="checkbox" name="rep_list[tire_front]" value="tire_front" /></td>
        <td><input type="checkbox" name="rep_list[tire_back]" value="tire_back" /></td>
        <td>alm <input type="checkbox" name="rep_list[tire_reg]" value="tire_reg" /></td>
        <td>indl <input type="checkbox" name="rep_list[tire_indl]" value="tire_indl" /></td>
      </tr>
      <tr>
        <td>Tube</td>
        <td><input type="checkbox" name="rep_list[tube_front]" value="tube_front" /></td>
        <td><input type="checkbox" name="rep_list[tube_back]" value="tube_back" /></td>
      </tr>
      <tr>
        <td>Hub.rep.</td>
        <td><input type="checkbox" name="rep_list[hub_front]" value="hub_front" /></td>
        <td><input type="checkbox" name="rep_list[hub_back]" value="hub_back" /></td>
        <td>just. <input type="checkbox" name="rep_list[hub_adjust]" value="hub_adjust" /></td>
 etc…....

2 个答案:

答案 0 :(得分:0)

如果您想在没有javascript的情况下执行此操作,则可以为所有复选框创建文本输入。例如:

<td>
    <input type="hidden" name="rep_list[tire_front]" value="False" />
    <input type="checkbox" name="rep_list[tire_front]" value="True" />
</td>

当您检查PHP中的POST时,您可以通过检查值来确定是否选中了复选框。当POST值为True时,选中了复选框并{{1} 1}}未经检查。

答案 1 :(得分:0)

如果勾选了复选框,则会在HTTP帖子中设置其给定值(如果未设置值,则默认设置为“on”)。如果没有勾选,则不会发送任何值。

要检查PHP中是否勾选了复选框,您只需检查是否设置了POST值:

$tire_front = isset($_POST['rep_list']['tire_front']);

如果您想为每个项目执行此操作,您可以创建一个键数组并循环遍历每个项目:

$fields = array(
    'tire_front',
    'tire_back',
    'tire_reg',
    'tire_indl',
    'tube_front',
    'tube_back',
    'hub_front',
    'hub_back',
    'hub_adjust'
);

foreach ($fields as $field) {
    $rep_list[$field] = isset($_POST['rep_list'][$field]);
}
然后,

$rep_list将为每个字段包含一个条目,如果勾选则值为true,否则为false