Данные Flash CodeIgniter

Я борюсь с данными Flash в CodeIgniter.

Я в основном хочу:

добавьте категорию в базу данных, перенаправив пользователя назад на страницу, появится всплывающее сообщение о успехе «Ваша категория была создана»

Пока я могу успешно добавить категорию в db, и пользовательский ввод проверен правильно, только я не знаю, как создать сообщение об успешном всплытии. (Я не хочу загружать представление успеха), просто перенаправляй обратно туда, откуда они пришли, и покажите небольшое сообщение в верхнем углу или что-то в этом роде.

Являются ли данные флэш-памяти правильным способом?

Related of "Данные Flash CodeIgniter"

В вашем контроллере:

//add to db // load session library if not auto-loaded $this->session->set_flashdata('msg', 'Category added'); redirect('controller/method'); 

В представлении:

 <script> // assumes you're using jQuery $(document).ready(function() { $('.confirm-div').hide(); <?php if($this->session->flashdata('msg')){ ?> $('.confirm-div').html('<?php echo $this->session->flashdata('msg'); ?>').show(); }); <?php } ?> </script> 

Вы можете выполнять разные сеансовые сообщения, это зависит от того, что вы просматриваете с вашего контроллера. Отмечено, что я использую Bootstrap в качестве моей основы CSS.

Ввиду,

Для случая успеха,

 <?php if ($this->session->flashdata('category_success')) { ?> <div class="alert alert-success"> <?= $this->session->flashdata('category_success') ?> </div> <?php } ?> 

Для случая ошибки,

 <?php if ($this->session->flashdata('category_error')) { ?> <div class="alert alert-danger"> <?= $this->session->flashdata('category_error') ?> </div> <?php } ?> 

В контроллере,

Для случая успеха,

 $this->session->set_flashdata('category_success', 'Success message.'); redirect("To your view"); 

Для случая ошибки,

 $this->session->set_flashdata('category_error', 'Error message.'); redirect("To your view"); 

Для получения дополнительной информации вы можете посетить: http://www.codeigniter.com/userguide2/libraries/sessions.html

используя тернарный оператор:

Установка данных Flash:

 $this->session->set_flashdata('insertproduct', 'Product added successfully'); $this->session->set_flashdata('deleteproduct','Delete added successfully'); 

Использование данных флэш-сессии:

 <?php if($this->session->flashdata('insertproduct')):echo $this->session->flashdata('insert');endif; ?><br/> <?php if($this->session->flashdata('delete')): echo $this->session->flashdata('delete'); endif;?> 

Да, просто проверьте, доступны ли данные флэш-памяти, если это так, покажите сообщение, если это не так, а затем не показывайте его. так просто.

ps, вы всегда должны делать перенаправление после запроса POST.

Во флэш-данных CodeIgniter используются переменные session PHP . Он помещает :old в имя сеанса так, чтобы он длился только один вызов db. Это очень важная функция и цель – делать то, что вы хотите делать, поэтому да, это очень хороший способ обойти эти вещи.

Помните, если вы собираетесь использовать это, вы должны включить $this->session->library('session')

Если вы не знаете, как на самом деле использовать flash_data я бы предложил прочитать документы, которые я ранее связывал.

 $this->session->set_flashdata( 'category_success', 'Your category has been created' ); redirect(); //location echo $this->session->flashdata('category_success'); 

Вы можете попробовать это –

контроллер:

  $this->session->set_flashdata('success', 'Success Message...'); OR $this->session->set_flashdata('error', 'Error Message...'); OR $this->session->set_flashdata('warning', 'Warning Message...'); OR $this->session->set_flashdata('info', 'Info Message...'); 

Посмотреть:

  <?php if($this->session->flashdata('success')){ ?> <div class="alert alert-success"> <a href="#" class="close" data-dismiss="alert">&times;</a> <strong>Success!</strong> <?php echo $this->session->flashdata('success'); ?> </div> <?php } else if($this->session->flashdata('error')){ ?> <div class="alert alert-danger"> <a href="#" class="close" data-dismiss="alert">&times;</a> <strong>Error!</strong> <?php echo $this->session->flashdata('error'); ?> </div> <?php } else if($this->session->flashdata('warning')){ ?> <div class="alert alert-warning"> <a href="#" class="close" data-dismiss="alert">&times;</a> <strong>Warning!</strong> <?php echo $this->session->flashdata('warning'); ?> </div> <?php } else if($this->session->flashdata('info')){ ?> <div class="alert alert-info"> <a href="#" class="close" data-dismiss="alert">&times;</a> <strong>Info!</strong> <?php echo $this->session->flashdata('info'); ?> </div> <?php } ?>