从数据库中获取数据,但在输入字段中未获得正确的值

时间:2019-05-26 10:30:06

标签: php

我已从数据库中获取数据。我在复选框前面有一个7复选框和2个标记文本。我已经为复选框写了逻辑,以检查数据库中的那些复选框,但是在文本字段中数据错误,我知道$ j出错的问题。你能告诉我我应该写什么支票,以便根据复选框从复选框中获取正确的文本值。我给的图片很容易理解。

图片(根据周名在数组中查看,我无法获取texbox的值)-> HERE IS THE PICTURE

现在让我们查看代码:

 <?php
            $details=new User();

            $row=$details->Display('date',$ids);   
            $weeknames=array(1=>'Monday',2=>'Tuesday',3=>'Wednesday',4=>'Thursday',5=>'Friday',6=>'Saturday',7=>'Sunday');

            for($i=0;$i<count($row); $i++)
          {
           $arr[]= $row[$i]['name'];
           $start[]= $row[$i]['starttime'];
           $end[]= $row[$i]['endtime'];
           $id[]=$row[$i]['id'];
          }
          print_r($row);
         $j=0;
            foreach($weeknames as $key=>$value)
            {  
                // echo $j;
                ?>
              <br/>  <input type="checkbox"  id="<?php echo $key; ?>" name="mycheck" value="<?php echo $value ?>"  <?php if(in_array($value,$arr)) { ?> checked="checked" <?php }?> /><?php echo $value ?> Start<input type="text"  userid="<?php  echo $ids; ?>" id="start<?php echo $key ?>" value="<?php  if(in_array($value,$arr)) { echo $start[$j];  } ?>"  />End<input type="text" id="end<?php echo $key ?>" value="<?php  if(in_array($value,$arr)) { echo $end[$j]; $j++;  }  ?>" /> <br />
                <?php 
            }
            ?>

1 个答案:

答案 0 :(得分:0)

下面的代码应该可以完成您尝试做的事情,但是在编写时,我注意到您应该注意的几件事。

您将mycheck用作所有复选框的名称,如果您需要知道哪个是哪个,如果根本不设置,则希望它们唯一。

第二,userid不是有效的HTML属性,如果您希望使用data-userid data-使其可用,则名称是有效的属性。

$data = [
    ["id"=>1, "name"=>"Monday", "starttime"=>"12:12 PM", "endtime"=> "12:34 PM", "userid"=> ""],
    ["id"=>2, "name"=>"Tuesday", "starttime"=>"4:20 AM", "endtime"=>"11:00 AM", "userid"=> ""],
    ["id"=>3, "name"=>"Wednesday", "starttime"=>"2:22 AM", "endtime"=> "6:00 AM", "userid"=> ""],
    ["id"=>4, "name"=>"Sunday", "starttime"=>"3:12 PM", "endtime"=> "7:22 PM", "userid"=> ""]
];

$days = ["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];

for($x = 0; $x < count($days); $x++){

    $day = $days[$x];
    $row = getRow($day, $data);

    if($row != null)
    {
        echo "<input type='checkbox'  id='{$day}' name='this-should-be-unique-{$x}' checked='checked'/> {$day} Start <input type='text' value='{$row['starttime']}'/> End <input type='text' value='{$row['endtime']}'/><br/> ";
    }
    else
    {
        echo "<input type='checkbox'  id='{$day}' name='this-should-be-unique-{$x}' /> {$day} Start <input type='text' value=''/> End <input type='text' value=''/><br/> ";
    }
}

function getRow($day, $data){
    for ($x = 0; $x < count($data); $x++){
        if($data[$x]["name"] == $day){
            return $data[$x];
        }
    }
    return null;
}