我遇到这样的情况,我想更新一些输入为复选框的数据,我在下面尝试了此代码。数据已保存在数据库中,但数据已保存在另一行中,
例如:我为BirdA选中了红色,黄色和灰色,同时为BirdD选中了黑色和蓝色。在数据库中,BirdA的颜色正确保存,但是第二只鸟的深色和蓝色保存在BirdB上( 应保存在BirdD上 )
我想解决上面的问题,因此数据应保存在数据库中的正确位置。请在下面检查我的代码:
我的Db表:
============================================= | birds | red | blue | grey | yellow | dark | ============================================= | BirdA | 0 | 0 | 0 | 0 | 0 | | BirdB | 0 | 0 | 0 | 0 | 0 | | BirdC | 0 | 0 | 0 | 0 | 0 | | BirdD | 0 | 0 | 0 | 0 | 0 | =============================================
看法 :
<tr> <td><input type="hidden" name="birds[]" value='<?php echo $dp['birds']; ?>' /><?php echo $dp['birds']; ?></td> <td><p align='center'><input type="text" name="qtt[]" value='<?php echo $dp['qtt']; ?>' tabindex="2" style="width:30px;" /></td> <td><p align='center'><input type="checkbox" name="red[]" value='1' <?php if($dp['red']==1) { echo " checked=\"checked\""; } ?> /></td> <td><p align='center'><input type="checkbox" name="blue[]" value='1' <?php if($dp['blue']==1) { echo " checked=\"checked\""; } ?> /></td> <td><p align='center'><input type="checkbox" name="grey[]" value='1' <?php if($dp['grey']==1) { echo " checked=\"checked\""; } ?> /></td> <td><p align='center'><input type="checkbox" name="yellow[]" value='1' <?php if($dp['yellow']==1) { echo " checked=\"checked\""; } ?> /></td> <td><p align='center'><input type="checkbox" name="dark[]" value='1' <?php if($dp['dark']==1) { echo " checked=\"checked\""; } ?> /></td> </tr>
和控制器:
$birds= $this->input->post("birds"); if (empty($this->input->post("birds"))){ $birds= 0; } $qtt= $this->input->post("qtt"); if (empty($this->input->post("qtt"))){ $qtt= 0; } $red= $this->input->post("red"); if (empty($this->input->post("red"))){ $red= 0; } $blue= $this->input->post("blue"); if (empty($this->input->post("blue"))){ $blue= 0; } $grey= $this->input->post("grey"); if (empty($this->input->post("grey"))){ $grey= 0; } $yellow= $this->input->post("yellow"); if (empty($this->input->post("yellow"))){ $yellow= 0; } $dark= $this->input->post("dark"); if (empty($this->input->post("dark"))){ $dark= 0; } for($x = 0; $x < sizeof($birds); $x++){ $reslt[$x] = array( "birds" => $birds[$x], "qtt" => $qtt[$x], "red" => $red[$x], "blue" => $blue[$x], "grey" => $grey[$x], "yellow" => $yellow[$x], "dark" => $dark[$x] ); } $this->db->update_batch('db_birds', $reslt, 'birds');
在执行该代码后,php出现如下错误:
A PHP Error was encountered Severity: Notice Message: Undefined variable: x Filename: controllers/.... Line Number: 613 Backtrace: File: /home/..... Line: 613 Function: _error_handler File: /home/..../index.php Line: 315 Function: require_once A PHP Error was encountered Severity: Notice Message: Undefined offset: 3 Filename: controllers/.... Line Number: 621 Backtrace: File: /home/.... Line: 621 Function: _error_handler File: /home/..../index.php Line: 315 Function: require_once A PHP Error was encountered Severity: Notice Message: Undefined offset: 3 Filename: controllers/... Line Number: 622 Backtrace: File: /home/... Line: 622 Function: _error_handler File: /home/.../index.php Line: 315 Function: require_once A PHP Error was encountered Severity: Notice Message: Undefined offset: 4 Filename: controllers/... Line Number: 620 Backtrace: File: /home/... Line: 620 Function: _error_handler File: /home/.../index.php Line: 315 Function: require_once A PHP Error was encountered Severity: Notice Message: Undefined offset: 4 Filename: controllers/... Line Number: 621 Backtrace: File: /home/... Line: 621 Function: _error_handler File: /home/.../index.php Line: 315 Function: require_once A PHP Error was encountered Severity: Notice Message: Undefined offset: 4 Filename: controllers/... Line Number: 622 Backtrace: File: /home/... Line: 622 Function: _error_handler File: /home/.../index.php Line: 315 Function: require_once A PHP Error was encountered Severity: Notice Message: Undefined offset: 5 Filename: controllers/... Line Number: 618 Backtrace: File: /home/... Line: 618 Function: _error_handler File: /home/.../index.php Line: 315 Function: require_once ......
谢谢您最好的问候
控制器代码:-
for($x = 0; $x < sizeof($birds); $x++){ $reslt[$x] = array( "birds" => $birds[$x], "qtt" => $qtt[$x], "red" => $red[$x], "blue" => $blue[$x], "grey" => $grey[$x], "yellow" => $yellow[$x], "dark" => $dark[$x] ); } $this->db->update_batch('db_birds', $reslt, 'birds');
更改在您的视图代码中:-
<?php //sql Query. //execute Query. $ii=0; foreach($dps as $dp){ $iii = $ii++; <tr> <td><input type="hidden" name="birds[<?php echo $iii;?>]" value='<?php echo $dp['birds']; ?>' /><?php echo $dp['birds']; ?></td> <td><p align='center'><input type="text" name="qtt[]" value='<?php echo $dp['qtt']; ?>' tabindex="2" style="width:30px;" /></td> <td><p align='center'><input type="checkbox" name="red[<?php echo $iii;?>]" value='1' <?php if($dp['red']==1) { echo " checked=\"checked\""; } ?> /></td> <td><p align='center'><input type="checkbox" name="blue[<?php echo $iii;?>]" value='1' <?php if($dp['blue']==1) { echo " checked=\"checked\""; } ?> /></td> <td><p align='center'><input type="checkbox" name="grey[<?php echo $iii;?>]" value='1' <?php if($dp['grey']==1) { echo " checked=\"checked\""; } ?> /></td> <td><p align='center'><input type="checkbox" name="yellow[<?php echo $iii;?>]" value='1' <?php if($dp['yellow']==1) { echo " checked=\"checked\""; } ?> /></td> <td><p align='center'><input type="checkbox" name="dark[<?php echo $iii;?>]" value='1' <?php if($dp['dark']==1) { echo " checked=\"checked\""; } ?> /></td> </tr> } ?>