【问题标题】:retrieving multiple values from checkbox and hidden field从复选框和隐藏字段中检索多个值
【发布时间】:2012-07-02 23:04:55
【问题描述】:

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

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 值,它会继续返回第一个值,然后返回第二个值,即使未选中关联的复选框并且选中了另一个复选框,请任何人帮助我,想不出更多. 提前致谢 约瑟夫·奥

【问题讨论】:

    标签: php


    【解决方案1】:

    然后测试!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/>";
      }
    }
    

    【讨论】:

    • 每个值都被正确检索,除了 subLocation,我使用 isset 仍然是相同的结果,是代码链接不好还是什么?不是isset不行,是可以的。问题是 subLocation 值总是从顶部返回相同的值,即使我只检查了最后一行
    • 据我所知,您发布的代码似乎是正确的。 Isset 是检查复选框是否被选中的标准公认方法。但是,正如您已经表明的那样,这不是唯一的方法,因为我们仍然得到错误的代码结果,我只能相信代码中的其他地方可能存在问题。此时,如果您希望发布更多表单代码和打印代码,我们可以尝试在其他地方进一步查找某些类型的错误分配。
    • 感谢您的宝贵时间,如果有任何问题我会回到这里,如果我能够解决问题,我也会回来发布正确的代码
    猜你喜欢
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多