如何将 codeigniter 中循环内的输入的数据库记录更新为 active/inactive
How to update DB records to active/inactive for inputs inside loop in codeigniter
我正在尝试使用 select 选项标记更新表中的特定行。但它只更新最后插入的行,而不更新特定的行。
我需要解决方案。
控制器:
public function user_status()
{
$this->load->model('customize_model');
$data = array("user_status" => $this->input->post('status'),
"user_id" => $this->input->post('user_id'));
$data1['user'] = $this->customize_model->update_status($data);
$this->load->view('custom/user',$data1);
}
型号:
public function update_status($data)
{
$user_id = $this->input->post('user_id');
$this->db->set($data);
$this->db->where('user_id',$user_id);
return $this->db->update('user',$data);
}
我的看法:
<?php
foreach($user->result() as $row)
{
?>
<tr>
<input type="hidden" class="form-control"
value="<?php echo $row->user_id; ?>"
name="user_id" />
<td><?php echo $row->user_id; ?></td>
<td><?php echo $row->user_status; ?></td>
<td>
<select class="form-control" name="status"
id="user_status">
<option value="Active">Active</option>
<option
value="Inactive">Inactive</option>
</select>
</td>
<td>
<button class="btn btn-primary" name="submit"
type="submit" value="<?php echo $row->user_id;?
>"> Update<?php echo $row->user_id;?></button>
</td>
</tr>
<?php
}
?>
这里的问题是相同的 name="user_id" 在您的视图中与其他名称属性一起循环。所以最后一个值被发送到控制器。
在视图中:
创建两个输入框
<input type="hidden" name="global_userId" id="global_userId" />
<input type="hidden" name="global_status" id="global_status" />
尝试将名称和 ID 设置为
name="status-<?php echo $row->user_id; ?>" id="status-<?php echo $row->user_id; ?>"
对于循环中的所有名称属性。
并使按钮类型按钮而不是提交并使其调用函数 onclick。
喜欢
onClick="submitForm(<?php echo $row->user_id; ?>)"
并创建 Jquery 函数来更新输入字段并提交表单:
function submitForm(userId){
$('#global_userId').val(userId);
var status = $('#status-'+userId).val();
$('#global_status').val(status);
$('#formId').submit();
}
在控制器和模型中接受 'global_userId' 和 'global_status' 作为值。
$user_id = $this->input->post('global_userId');
我正在尝试使用 select 选项标记更新表中的特定行。但它只更新最后插入的行,而不更新特定的行。 我需要解决方案。
控制器:
public function user_status()
{
$this->load->model('customize_model');
$data = array("user_status" => $this->input->post('status'),
"user_id" => $this->input->post('user_id'));
$data1['user'] = $this->customize_model->update_status($data);
$this->load->view('custom/user',$data1);
}
型号:
public function update_status($data)
{
$user_id = $this->input->post('user_id');
$this->db->set($data);
$this->db->where('user_id',$user_id);
return $this->db->update('user',$data);
}
我的看法:
<?php
foreach($user->result() as $row)
{
?>
<tr>
<input type="hidden" class="form-control"
value="<?php echo $row->user_id; ?>"
name="user_id" />
<td><?php echo $row->user_id; ?></td>
<td><?php echo $row->user_status; ?></td>
<td>
<select class="form-control" name="status"
id="user_status">
<option value="Active">Active</option>
<option
value="Inactive">Inactive</option>
</select>
</td>
<td>
<button class="btn btn-primary" name="submit"
type="submit" value="<?php echo $row->user_id;?
>"> Update<?php echo $row->user_id;?></button>
</td>
</tr>
<?php
}
?>
这里的问题是相同的 name="user_id" 在您的视图中与其他名称属性一起循环。所以最后一个值被发送到控制器。
在视图中: 创建两个输入框
<input type="hidden" name="global_userId" id="global_userId" />
<input type="hidden" name="global_status" id="global_status" />
尝试将名称和 ID 设置为
name="status-<?php echo $row->user_id; ?>" id="status-<?php echo $row->user_id; ?>"
对于循环中的所有名称属性。 并使按钮类型按钮而不是提交并使其调用函数 onclick。 喜欢
onClick="submitForm(<?php echo $row->user_id; ?>)"
并创建 Jquery 函数来更新输入字段并提交表单:
function submitForm(userId){
$('#global_userId').val(userId);
var status = $('#status-'+userId).val();
$('#global_status').val(status);
$('#formId').submit();
}
在控制器和模型中接受 'global_userId' 和 'global_status' 作为值。
$user_id = $this->input->post('global_userId');