我是codeigniter的新手,我正在做以下事情,但我没有得到解决方案。
以下是一个接一个的事情。
首先,我从数据库中获取数据,并通过foreach循环以表格格式显示。
<?php
$ attributes = array('class'=&gt;'form-horizontal','id'=&gt;'update_form'); echo form_open('emp_hodm_update / update_hodm',$ attributes); ?&GT;
日期 工作 伙伴 导向器 时间 任务 状态 行动 date;?&gt;“class =”“/&gt; 工作;?&gt;“class =”“/&gt; 合作伙伴;?&gt;“class =”“/&gt; 导演;?&gt;“class =”“/&gt; 时间;?&gt;“class =”“/&gt; 任务;?&GT; 状态;?&GT; 删除
通过单击“添加”按钮,它会创建新行,因此我想更新旧数据以及通过添加按钮创建的新行数据以插入表格。
但我不知道该怎么做。
控制器:
public function update_hodm(){
/* Checking the all validation of task form*/
//$this->form_validation->set_rules('date', 'Date', 'required');
$this->form_validation->set_rules('work[]', 'Types of Work', 'required');
//$this->form_validation->set_rules('partner[]', 'Worked With', 'required');
$this->form_validation->set_rules('director[]', 'Director', 'required');
$this->form_validation->set_rules('time[]', 'No Of Hours', 'required');
$this->form_validation->set_rules('task[]', 'Task Details', 'required');
$this->form_validation->set_rules('status[]', 'Task Status', 'required');
if ($this->form_validation->run()) {
/* Taking the data from form*/
$todayDate = date('Y-m-d');
$work=$this->input->post('work');
$partner=$this->input->post('partner');
$director=$this->input->post('director');
$time=$this->input->post('time');
$task=$this->input->post('task');
$status=$this->input->post('status');
$count=count($this->input->post('work'));
$data =array();
for($i=0; $i<$count; $i++) {
$data[$i] = array(
'name' =>$this->session->userdata('emp_name'),
'date' =>$todayDate,
'work' =>$work[$i],
'partner' =>$partner[$i],
'director' =>$director[$i],
'time' =>$time[$i],
'task' =>$task[$i],
'status' =>$status[$i]
);
}
$add=$this->update->update_hodm($data,$todayDate);
/* Display Success message if data updated successfully in database*/
if($add){
$this->session->set_flashdata('hodm_form',"All HODM Data Inserted Successfully.");
$this->session->set_flashdata('hodm_form_class','alert-success');
}else{
/* Displaying the error message*/
$this->session->set_flashdata('hodm_form',"failed to add, Please Try again");
$this->session->set_flashdata('hodm_form_class','alert-danger');
}
return redirect('home');
} else {
$this->load->view('public/digital_hodm_view');
}
}
型号:
public function update_hodm($data,$todayDate){
$this->db->where('date',$todaydate);
$this->db->update_batch('task_form', $data,'date');//date is my table column name
return true;
}
提前致谢
答案 0 :(得分:0)
如果该表中有唯一/主键,请为每个数据添加密钥。假设密钥为task_id
,请更新控制器中的代码:
...
...
...
'task' =>$task[$i],
'status' =>$status[$i]
);
if(!empty($task_id[$i]))$data[$i]['task_id'] = $task_id[$i]; //Add task ids for old data
}
$add=$this->update->update_hodm($data,$todayDate);
在您的模型中,使用以下代码更新函数:
foreach($data as $array)
{
$query = 'INSERT INTO `table` SET ';
$sep = $setvalues = '';
foreach($array as $key=>$value) {
$setvalues .= $sep.$key.' = "'.$value.'"';
$sep = ',';
}
$query .= $setvalues.' ON DUPLICATE KEY UPDATE '.$setvalues.';';
$this->db->query($query);
}
答案 1 :(得分:0)
查看:
<?php
$attributes = array(
'class' => 'form-horizontal',
'id' => 'update_form'
);
echo form_open('emp_hodm_update/update_hodm', $attributes);
?>
<table class="table table-striped table-hover table-responsive">
<thead>
<tr class="">
<th>date</th>
<th>Work</th>
<th>Partner</th>
<th>Director</th>
<th>Time</th>
<th>Task</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
foreach($result as $row)
{ ?>
<tr>
<td>
<input class="form-control" type="hidden" name="form_id[]" value="<?php
echo $row->form_id; ?>" class="" />
<input class="form-control" type="text" name="date[]" value="<?php
echo $row->date; ?>" class="" />
</td>
<td>
<input class="form-control" type="text" name="work[]" value="<?php
echo $row->work; ?>" class="" />
</td>
<td>
<input class="form-control" type="text" name="partner[]" value="<?php
echo $row->partner; ?>" class="" />
</td>
<td>
<input class="form-control" type="text" name="director[]" value="<?php
echo $row->director; ?>" class="" />
</td>
<td>
<input class="form-control" type="text" name="time[]" value="<?php
echo $row->time; ?>" class="" />
</td>
<td>
<textarea class="form-control" name="task[]" rows="2" id=""><?php
echo $row->task; ?></textarea>
</td>
<td>
<textarea class="form-control" name="status[]" rows="2" id=""><?php
echo $row->status; ?></textarea>
</td>
<td>
<a href="" class="btn btn-danger">Delete</a>
</td>
</tr>
<!--
start :if extra row is add on the button click
-->
<tr>
<td>
<input class="form-control" type="text" name="date[]" value="" class="" />
<!--
make sure at time of addition value of form_id[] should be empty
-->
<input class="form-control" type="hidden" name="form_id[]" value="" class="" />
</td>
<td>
<input class="form-control" type="text" name="work[]" value="" class="" />
</td>
<td>
<input class="form-control" type="text" name="partner[]" value="" class="" />
</td>
<td>
<input class="form-control" type="text" name="director[]" value="" class="" />
</td>
<td>
<input class="form-control" type="text" name="time[]" value="" class="" />
</td>
<td>
<textarea class="form-control" name="task[]" rows="2" id=""></textarea>
</td>
<td>
<textarea class="form-control" name="status[]" rows="2" id=""></textarea>
</td>
<td>
<a href="" class="btn btn-danger">Delete</a>
</td>
</tr>
<!--
end :
-->
<?php
} ?>
</tbody>
</table>
<input class="btn btn-primary" type="submit" name="submit" value="submit">
<input class="btn btn-primary" type="submit" name="submit" value="add">
<?php
echo form_close();
?>
<强>控制器:强>
public function update_hodm(){
/* Checking the all validation of task form*/
// $this->form_validation->set_rules('date', 'Date', 'required');
$this->form_validation->set_rules('work[]', 'Types of Work', 'required');
// $this->form_validation->set_rules('partner[]', 'Worked With', 'required');
$this->form_validation->set_rules('director[]', 'Director', 'required');
$this->form_validation->set_rules('time[]', 'No Of Hours', 'required');
$this->form_validation->set_rules('task[]', 'Task Details', 'required');
$this->form_validation->set_rules('status[]', 'Task Status', 'required');
if ($this->form_validation->run()) {
foreach($_POST['form_id'] as $key => $value) {
$data = array(
'name' => 'aman',
'date' => $_POST['date'][$key],
'work' => $_POST['work'][$key],
'partner' => $_POST['partner'][$key],
'director' => $_POST['director'][$key],
'time' => $_POST['time'][$key],
'task' => $_POST['task'][$key],
'status' => $_POST['status'][$key]
);
if (!empty($value)) {
// update
$this->update->update_hodm($data, $value);
}
else {
// insert
$this->update->insert_hodm($data);
}
}
}
else {
$this->load->view('public/digital_hodm_view');
}
}
型号:
public function update_hodm($data,$form_id){
$this->db->where('form_id',$form_id);
$this->db->update_batch('task_form', $data,'date');//date is my table column name
return true;
}
public function insert_hodm($data){
$this->db->insert('task_form', $data);name
return true;
}
答案 2 :(得分:0)
使用以下代码查看 再添加一列updated_at
查看:
<?php
$attributes = array('class' => 'form-horizontal','id'=>'update_form');
echo form_open('emp_hodm_update/update_hodm', $attributes);
?>
<table class="table table-striped table-hover table-responsive">
<thead>
<tr class="">
<th>date</th>
<th>Work</th>
<th>Partner</th>
<th>Director</th>
<th>Time</th>
<th>Task</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php foreach($result as $row) { ?>
<tr>
<td>
<input class="form-control" type="text" name="date[]" value="<?php echo $row->date;?>" class="" />
</td>
<td>
<input class="form-control" type="text" name="work[]" value="<?php echo $row->work;?>" class="" />
</td>
<td>
<input class="form-control" type="text" name="partner[]" value="<?php echo $row->partner;?>" class="" />
</td>
<td>
<input class="form-control" type="text" name="director[]" value="<?php echo $row->director;?>" class="" />
</td>
<td>
<input class="form-control" type="text" name="time[]" value="<?php echo $row->time;?>" class="" />
</td>
<td>
<textarea class="form-control" name="task[]" rows="2" id=""><?php echo $row->task;?></textarea>
</td>
<td>
<textarea class="form-control" name="status[]" rows="2" id=""><?php echo $row->status;?></textarea>
</td>
<td>
<a href="" class="btn btn-danger">Delete</a>
<!-- Add This -->
<input class="form-control" type="hidden" name="form_id_hidden[]" value="<?php echo $row->form_id;?>"
</td>
</tr>
<?php } ?>
</tbody>
</table>
<input class="btn btn-primary" type="submit" name="submit" value="submit">
<input class="btn btn-primary" type="submit" name="submit" value="add">
<?php
echo form_close();
?>
控制器:
public function update_hodm(){
/* Checking the all validation of task form*/
//$this->form_validation->set_rules('date', 'Date', 'required');
$this->form_validation->set_rules('work[]', 'Types of Work', 'required');
//$this->form_validation->set_rules('partner[]', 'Worked With', 'required');
$this->form_validation->set_rules('director[]', 'Director', 'required');
$this->form_validation->set_rules('time[]', 'No Of Hours', 'required');
$this->form_validation->set_rules('task[]', 'Task Details', 'required');
$this->form_validation->set_rules('status[]', 'Task Status', 'required');
if ($this->form_validation->run()) {
/* Taking the data from form*/
$todayDate = date('Y-m-d');
<!-- Add This -->
$updatedDate = date('Y-m-d H:i:s'); // if not used H:i:s and there is no chnage in data update will return false
$work=$this->input->post('work');
$partner=$this->input->post('partner');
$director=$this->input->post('director');
$time=$this->input->post('time');
$task=$this->input->post('task');
$status=$this->input->post('status');
<!-- Add This -->
$form_id=$this->input->post('form_id_hidden');
$count=count($this->input->post('work'));
<!-- Add This -->
$data = $new_data = array();
$old_ids = array();
for($i=0; $i<$count; $i++) {
<!-- Add This -->
if(!in_array($form_id[$i],$old_ids)){
$old_ids[] = $form_id[$i];
$data[$i] = array(
'name' =>$this->session->userdata('emp_name'),
'date' =>$todayDate,
'work' =>$work[$i],
'partner' =>$partner[$i],
'director' =>$director[$i],
'time' =>$time[$i],
'task' =>$task[$i],
'status' =>$status[$i],
'form_id' =>$form_id[$i],
'updated_at' =>$updatedDate,
);
}else{
$new_data[$i] = array(
'name' =>$this->session->userdata('emp_name'),
'date' =>$todayDate,
'work' =>$work[$i],
'partner' =>$partner[$i],
'director' =>$director[$i],
'time' =>$time[$i],
'task' =>$task[$i],
'status' =>$status[$i],
);
}
}
<!-- Add This -->
$update=$this->update->update_hodm($data,'form_id');
$add = $this->update->addnew_hodm($new_data);
/* Display Success message if data updated successfully in database*/
if($update && $add){ <!-- Add This -->
$this->session->set_flashdata('hodm_form',"All HODM Data Updated and Inserted Successfully.");
$this->session->set_flashdata('hodm_form_class','alert-success');
}else if($update){ <!-- Add This -->
$this->session->set_flashdata('hodm_form',"All HODM Data Updated Successfully.");
$this->session->set_flashdata('hodm_form_class','alert-success');
}
else if($add){
$this->session->set_flashdata('hodm_form',"All HODM Data Inserted Successfully.");
$this->session->set_flashdata('hodm_form_class','alert-success');
}else{
/* Displaying the error message*/
$this->session->set_flashdata('hodm_form',"failed to add, Please Try again");
$this->session->set_flashdata('hodm_form_class','alert-danger');
}
return redirect('home');
} else {
$this->load->view('public/digital_hodm_view');
}
}
Model :
<!-- Add This -->
public function addnew_hodm($data){
if(empty($data)){
return false;
}
$this->db->insert_batch('task_form', $data);
return ($this->db->affected_rows()>0?TRUE:FALSE);
}
<!-- Add This -->
public function update_hodm($data,$where){
if(empty($data)){
return false;
}
$this->db->update_batch('task_form', $data,$where);
return ($this->db->affected_rows()?TRUE:FALSE);
}