Как установить другое флэш-сообщение для одной и той же операции обновления в CodeIgniter?

#php #codeigniter-3 #flash-message

#php #codeigniter-3 #flash-сообщение

Вопрос:

Я обновляю поле в моей таблице db, которое либо пусто, либо уже содержит некоторый текст. Если оно пустое после обновления, флэш-сообщение должно быть похоже на «Добавлено ваше вступление«, иначе как «обновлено ваше вступление«.

Пример таблицы

Это мой контроллер

 function intro(){
$user_id = $this->session->userdata('user_id');
$table = 'users';
$this->load->model('my_model');
if($_POST){
date_to_save['intro'] = $this->input->post('intro');
$this->my_model->update($table, $user_id, $data_to_save);
$this->session->set_flashdata('success', 'Intro added');
//$this->session->set_flashdata('success', 'Intro updated');
redirect('Home');
}
else{
$data = array();
if($this->my_model->get($table, $user_id)){
$data['intro'] = $this->my_model->get($table, $user_id);
}
$this->load->view('intro',$data);
}
}
 

И вот мой пример просмотра

  <form>
 My Intro:<br>
 <input type="text" name="intro" value="<?php isset($_POST['intro'])? $_POST['intro'] :'';?>"><br>
 <input type="submit" id="submit" value="Submit">
 </form> 
 

Я новичок и ищу простое решение.

Ответ №1:

Для достижения этой цели существуют разные методы, один из которых приведен ниже

в поле зрения

  <input type="hidden" name="mode" value="<?php isset($_POST['intro'])? 'edit' :'add';?>">
 

и в вашем контроллере

 if($_POST['mode']=='add'){
$this->session->set_flashdata('success', 'Intro added');
}
else{
$this->session->set_flashdata('success', 'Intro updated');
}