0

私のコードは期待どおりに動作しますが、小さな問題が発生しました。同じ名前のチェックボックスと同じ名前の非表示フィールドから値を取得しようとしましたが、チェックボックスが選択されていなくても非表示フィールドの 1 つが最初の値を返し続けます。ここに私のコードがあります

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 の値です。関連するチェックボックスがチェックされておらず、別のチェックボックスがチェックされていても、最初の値を返し、次に 2 番目の値を返し続けます。よろしくお願いしますジョセフO

4

1 に答える 1

0

代わりに、!emptyphp の function を使用して試してみてください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 に答える