Php “之后如何向用户提供反馈信息”;“保存”;功能代码点火器
通常,我会返回一个JSON,其中包含一条关于函数状态的消息(如果出错或成功),但是,这次我遇到了一个问题。我正在用PHP开发一个注册学生加入大学的应用程序,数据库中有很多表可以插入学生的数据,比如,家长,学生地址,学生课程,课程价值等等,所以,在用户填写所有表单字段并按提交后,我做了很多插入和更新,就像不同表中的10个插入一样,我的问题是,在所有这些操作之后,我如何返回状态消息,如果我的一个插入失败,我如何处理它以向用户提供有关此操作的反馈?我对CodeIgniter有点陌生,下面是我如何在controller的save函数中插入的一个示例:Php “之后如何向用户提供反馈信息”;“保存”;功能代码点火器,php,sql,codeigniter,Php,Sql,Codeigniter,通常,我会返回一个JSON,其中包含一条关于函数状态的消息(如果出错或成功),但是,这次我遇到了一个问题。我正在用PHP开发一个注册学生加入大学的应用程序,数据库中有很多表可以插入学生的数据,比如,家长,学生地址,学生课程,课程价值等等,所以,在用户填写所有表单字段并按提交后,我做了很多插入和更新,就像不同表中的10个插入一样,我的问题是,在所有这些操作之后,我如何返回状态消息,如果我的一个插入失败,我如何处理它以向用户提供有关此操作的反馈?我对CodeIgniter有点陌生,下面是我如何在co
$studentData = array(
'FIELD1' => $data1,
'FIELD2' => $data2,
'FIELD3' => $data3
);
$this->mymodel->insert('STUDENTTABLE', $data);
我做了这么多这样的插入上面。如何返回每次插入的反馈,并在保存函数的最后返回成功消息
// Set flash data in your controller
$this->session->set_flashdata('message_name', 'This is my message');
// After that you need to used redirect function instead of load view such as
redirect("admin/signup");
// Get Flash data on view in view page
$this->session->flashdata('message_name');
有关更多参考,您可以访问:
有很多技巧可以知道您是否成功插入
$this->db->infected_rows()
函数知道查询后它将返回受影响的行。您可以简单地使用if条件对其进行检查
return ($this->db->affected_rows() != 1) ? false : true;
$this->db->insert_id()代码>此函数将返回您最后插入的id,因此取决于您可以执行进一步的编码
$this->db->trans_begin();
// Your query
if ($this->db->trans_status() === FALSE)
{
$this->db->trans_rollback();
}
else
{
$this->db->trans_commit();
}
insert
和update
查询的事务。如果要添加多个数据或执行多个与数据库相关的活动,则此功能非常有用
现在,将消息传递给视图
如果您使用上述技术并从模型向控制器返回true或false,则很容易根据该技术获取消息
我正在为您添加示例模型、控制器和视图代码
public function your_model_function(){
// Do query
// Return TRUE or FALSE
}
public function your_controller_function(){
$data = $this->input->post(); // Your post data. You can use get also.
$result = $this->your_model->your_model_function($data);
//Normal Pass the variable to the view [OPTION-1]
if($result == TRUE){
$msg = "Successfully Insert.";
}else {
$msg = "Failed To Insert.";
}
$this->load->view('your_view',['msg'=>$msg]); // Change this code as per your requierment.
//Now For Flash Data [OPTION-2]
if($result == TRUE){
$this->session->set_flashdata('feedback', 'Successfully Insert.');
}else {
this->session->set_flashdata('feedback', 'Failed To Insert.');
}
//redirect to your page
return redirect('your_controller/your_controller_function'); // Change this code as per your requierment.
}
[Option-1]的视图
<?php echo $msg; ?>
//OR
<?php print_r($msg); ?>
//或
[选项2]的视图
<?php
if ($feedback = $this->session->flashdata('feedback')){
echo $feedback;
}
?>