0

我的代码按预期工作,但发生了一个小问题,我尝试从具有相同名称的复选框和具有相同名称的隐藏字段中检索值,它可以工作,但即使未选中复选框,其中一个隐藏字段仍会继续返回第一个值。这是我的代码

while($row=mysql_fetch_array($res1)){
?> 
    <tr><td class='bold'><?php echo $sn;?><input type="hidden" name="snum[]" value="<?php echo $sn; ?>" /></td>
    <td><?php echo $row['subLocationName']; ?>
    <input type="hidden" name="location[]" value="<?php echo $row['dllink_id']; ?>"/></td>
    <td><input type="checkbox" name="available[]" value="<?php echo $row['subLocationName']; ?>"/></td>
    <input type="hidden" name="locationID[]" value="<?php echo $row['locationName']; ?>"/>
    <input type="hidden" name="sublocation[]" value="<?php echo $row['subLocationName']; ?>"/>
    <input type="hidden" name="device[]" value="<?php echo $row['deviceName']; ?>"/>
    <td></td><td></td></tr>
<?php
        $sn++;
    }

这些值来自我的数据库。检索代码是这样的

if(isset($_POST['submit_btn'])){

        $serial_num = $_POST['snum'];
        $locationDeviceLink = $_POST['location'];
        $linkAvailable =$_POST['available'];
        $location = $_POST['locationID'];
        $subLocation = $_POST['sublocation'];
        $device = $_POST['device']; 
        $measure_date = date("Y-m-d");
        $sn = count($linkAvailable);
            for ($i=0; $i<$sn; $i++ ){
                if(!empty($linkAvailable[$i])){
                    echo "serial number:".$serial_num[$i]."  location:".$locationDeviceLink[$i]."  available:".$linkAvailable[$i]."  Location:".$location[$i]."  subLocation:".$subLocation[$i]."  Device:".$device[$i]."  Date:".$measure_date."<br/>";


                }

            }



    }

问题是 subLocation 值,它会继续返回第一个值,然后返回第二个值,即使未选中关联的复选框并且选中了另一个复选框,请任何人都可以帮助我,想不出更多。在此先感谢约瑟夫 O

4

1 回答 1

0

而不是测试!empty尝试使用php的函数isset

for ($i=0; $i<$sn; $i++ ){
  if(isset($linkAvailable[$i])) {
    echo "serial number:".$serial_num[$i]."  location:".$locationDeviceLink[$i]."  available:".$linkAvailable[$i]."  Location:".$location[$i]."  subLocation:".$subLocation[$i]."  Device:".$device[$i]."  Date:".$measure_date."<br/>";
  }
}
于 2012-07-02T15:04:55.830 回答