使用PHP解析HTML表单数据[重复]?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (78)

这个问题在这里已有答案:

下面是我一直在运行的测试的代码。

<!DOCTYPE HTML">
<html>
<head>
      <title>Test Page</title>
</head>
<body>
      <form class="form-horizontal" method = "POST">
            <fieldset>
                   <table  class = "table table-striped table-sm">                 
                        <thead>
                            <tr> 
                                 <th style="width: 2%"> </th>
                                 <th style="width: 18%">Name</th>
                                 <th style="width: 6%"> W1 </th>
                                 <th style="width: 6%"> W1 </th>
                                 <th style="width: 6%"> W1 </th>
                                 <th style="width: 6%"> W1 </th>
                                 <th style="width: 6%"> W1 </th>
                                 <th style="width: 6%"> W1 </th>
                            </tr>
                        </thead>
                        <tbody>       
                               <tr>
                                   <td><input type="hidden" name="memberid[]" value="1063" /></td> 
                                   <td>Charlie Farnsworth</td> 
                                   <td align="center"><input type="checkbox" name="test[]" value = "0"  ></td>  
                                   <td align="center"><input type="checkbox" name="test[]"  value = "1" ></td>  
                                   <td align="center"><input type="checkbox" name="test[]"  value = "2" ></td>  
                                   <td align="center"><input type="checkbox" name="test[]"  value = "3" ></td>  
                                   <td align="center"><input type="checkbox" name="test[]"  value = "4" ></td>  
                                   <td align="center"><input type="checkbox" name="test[]"  value = "5" ></td>  
                               </tr>

                        </tbody>       
                   </table>
            </fieldset>
            <div align="center">
                <br /><br />
                <input type="submit" id= "submit" name = "submit" value="Save changes">
                <br /><br />
            </div>
      </form>
</body>
</html>

PHP代码是

<?php 
if (isset($_POST)) {
   $return = '000000';
   if (!empty($_POST['test'])) { 
     for ($x = 0; $x < 6; $x++) {
        if(IsChecked('test',$x)){
          $return=substr_replace($return,"1",$x,1);          } 
        }
     } 
     $return = implode(',',str_split($return));
     echo $_POST['memberid'].'<br/>';
     echo $return.'<br/><br/>';
 }
 unset($_POST);
}

function IsChecked($chkname,$value) {
    if(!empty($_POST[$chkname])){
        foreach($_POST[$chkname] as $chkval){
            if($chkval == $value){
                return true;
            }
        }
    }
    return false;
}

?>                 

这是为了允许我根据复选框状态构建一个1和0的字符串。这将用于更新具有隐藏输入值的id字段的SQL表记录。

这适用于单行数据,但如果有多行数据,我将无法完成它。

我原以为foreach结构可能会起作用,但到目前为止还没有成功。

提问于
用户回答回答于

构建表时,请为每个复选框包含memberid值

<tr>
<td><input type="hidden" name="memberid[]" value="1063" /></td> 
<td>Charlie Farnsworth</td> 
<td align="center"><input type="checkbox" name="test[1063][]" value = "0"  ></td>  
<td align="center"><input type="checkbox" name="test[1063][]"  value = "1" ></td>  
<td align="center"><input type="checkbox" name="test[1063][]"  value = "2" ></td>  
<td align="center"><input type="checkbox" name="test[1063][]"  value = "3" ></td>  
<td align="center"><input type="checkbox" name="test[1063][]"  value = "4" ></td>  
<td align="center"><input type="checkbox" name="test[1063][]"  value = "5" ></td>  
</tr>

然后参考

foreach ($_POST['memberid'] as memberid){
    foreach ($_POST['test'][memberid] as checkedValue){
          // do your stuff...
    }
}

扫码关注云+社区

领取腾讯云代金券