`
天梯梦
  • 浏览: 13731883 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

codeigniter: 显示提示信息 How do I display result or error messages in CodeIgniter app

阅读更多

Sometimes we need to display general messages or error messages to the user noticing about certain action, for example on success or failure.

Imagine you are submitting a form and then creating or updating the data in the database. You may be interested in noticing the user about the result for that action .

This is the way I use to display general messages (and error messages) in CodeIgniter application.

The result

This is how my message looks.

codeigniter-display-message

How to display the message?

Now, in order to display that information message , I do the following:

First, when submitting the form, after validating it, in the controller I call the model function that will save the entity (license in this case). I make sure that model function returns a result, and FALSE result in case of error (I usually return an array result on success with an ID element with the last inserted identifier if the result was an insert, or the just updated entity identifier if it was an update, but that is out of this article’s scope).

Controller

Imagine we are calling the following method in the controller:

 

$result = $this->license_model->create_or_update_license($agent_id, $state, $data); 
 

 

Then, we need to see if that was an error or not. Based on that result, I will use CodeIgniter’s set_flashdata function in the Session library, as follows:

 

if ($result) 
{ 
    $this->session->set_flashdata( 'message', array( 'title' => 'License created', 'content' => 'License has been saved sucessfully', 'type' => 'message' )); 
    redirect('agent/licenses');     
 
} else 
{ 
    $this->session->set_flashdata( 'message', array( 'title' => 'License error', 'content' => 'License could not be saved', 'type' => 'error' )); 
    redirect('agent/licenses'); 
}  
 

 

Once the Flash message has been set, I redirect the user to the form or a list of results. That is needed in order to get the flash working (you cannot just load the view in this case… well, you can but this method will not work in such case). When comparing $result TRUE or FALSE, please notice the different value for type . I am using type=message for successful messages, and type=error for error mesages.

View

In the view, just above the form, I use this snippet.

 

<?= @flash_message() ?> 
 

 

To keep it simple, I just added @ to avoid any error message, but probably if you are looking for a better coding practice and you may not do that.

A Helper

Then, I put this flash message function as a helper function, so it is available when calling from the view.

function flash_message() 
{ 
    // get flash message from CI instance 
    $ci =& get_instance(); 
    $flashmsg = $ci->session->flashdata('message'); 
 
    $html = ''; 
    if (is_array($flashmsg)) 
    { 
        $html = '<div id="flashmessage" class="'.$flashmsg[type].'"> 
            <img style="float: right; cursor: pointer" id="closemessage" src="'.base_url().'images/cross.png" /> 
            <strong>'.$flashmsg['title'].'</strong> 
            <p>'.$flashmsg['content'].'</p> 
            </div>'; 
    } 
    return $html; 
}  
 

jQuery part

Finally, I added a simple effect to slide down and blink the message box , and adding the close functionality with a simple jQuery function. You can do something like this. Of course, you can modify it or just avoid using the jQuery effect if it is desired.

 

// first slide down and blink the message box 
$("#flashmessage").animate({top: "0px"}, 1000 ).show('fast').fadeIn(200).fadeOut(100).fadeIn(100).fadeOut(100).fadeIn(100);  

 

Some CSS styling

Finally, just add some CSS styling for #flashmessage, using message or error class names.

 

.message{ 
    border:1px solid #CCCCCC; 
    width:300px; 
    border:1px solid #c93; 
    background:#ffc; 
    padding:5px; 
    color: #333333; 
    margin-bottom:10px; 
}  

 

 

Enjoy it.

分享到:
评论

相关推荐

    CodeIgniter:php敏捷开发框架(中文)

    1、CodeIgniter:php敏捷开发框架 2、CodeIgniter 1.7.1 用户指南 本书详细讲解了 CI 的一些主要特性。本书并不包含 CI 的所有内容和全部细节。CI 有一本出色的在线《用户指南》,它详细讲解了大多数的内容。它可以...

    CodeIgniter:php敏捷开发框架web快速开发详解

    这篇文章是有关 CodeIgniter 的(以下简称 CI),CI 是一个达成以上目标的框架。 如果你只是要达成一个最终的结果,而把中间所有的编码细节和复杂统统丢给一个框架,CI 是你最好的朋友。 CI 有很多优点:免费,轻...

    CodeIgniter 2.2.2 中文文档 CI2.2.2中文文档

    CI(CodeIgniter)以其轻量级、高性能和丰富的库集著称,深受开发者喜爱。这份2.2.2版本的中文文档是针对这个特定版本的全面指南,帮助开发者理解和应用框架的各种功能。 文档主要分为几个部分,涵盖从安装配置到...

    CodeIgniter 3中文手册 --CI 3.0 官方简体中文版用户手册.chm

    CodeIgniter 3中文手册 --CI 3.0 官方简体中文版用户手册.chm 基于最新 2016-09-14. 官方简体中文手册制作, 由于官方没有提供 chm版本的手册, 使用很不方便,所有自己制作了本 CHM ci手册. 免费分享给大家!

    blog-codeigniter:博客 - CodeIgniter

    "blog-codeigniter"项目显然基于CodeIgniter框架,用于创建一个博客网站。在深入探讨这个项目之前,我们先来了解一下CodeIgniter的关键特性。 1. **MVC架构**:CodeIgniter采用模型-视图-控制器(MVC)设计模式,这...

    codeigniter(CI)中文手册下载

    在"codeigniter(CI)中文手册下载"中,你可以找到关于CI框架的详细文档,涵盖了从安装、配置到各种核心概念、类库、辅助函数的使用方法。手册通常会分为以下几个主要部分: 1. **安装与设置**:指导如何在服务器...

    CodeIgniter-CI框架-指南 初学必读

    CodeIgniter是由EllisLab开发,后来转移到了英国的非营利组织Bcit-ci。它的核心理念是提供一个简单的、优雅的工具集,让开发者能够用PHP编写出强大的Web应用程序。CI框架的亮点包括: 1. **轻量级**:由于其精简的...

    一个简单的Codeigniter用户登录验证例子程序

    在这个"一个简单的Codeigniter用户登录验证例子程序"中,我们将探讨如何在Codeigniter中实现用户认证和登录功能,这对于任何Web应用来说都是核心部分。这个程序包含了一些关键组件,如密码加密、session管理以及用户...

    CodeIgniter

    "CodeIgniter 2.1.2"是该框架的一个特定版本,它在2012年发布,虽然现在已经有了更新的版本,但这个老版本仍然被许多开发者用于维护旧项目或者教学用途。 CodeIgniter基于Model-View-Controller(MVC)设计模式,这...

    Codeigniter Grid 使用方法 (flexigrid)

    Codeigniter Grid 使用方法 (flexigrid) 博客分类: Codeigniter / CakePHP ASPRailsRubyPHPGoogle 来源:http://codeigniter.com/forums/viewthread/75326/P0/ Updated: 6 September 2008 Although I love CI, ...

    CodeIgniter4.0.0.zip

    下面将详细介绍CodeIgniter 4及其主要特点、核心组件以及如何开始使用。 1. **CodeIgniter 4概述** CodeIgniter 4是一个基于MVC(Model-View-Controller)架构的PHP框架,旨在简化Web应用程序的开发过程。相比之前...

    CodeIgniter-AngularJS-App, 在CodeIgniter和AngularJS上,示例应用程序基于.zip

    CodeIgniter-AngularJS-App, 在CodeIgniter和AngularJS上,示例应用程序基于 的CodeIgniter应用程序基于 CodeIgniter 3.x 和 AngularJS 1. x.的样例应用程序这是非常简单的例子- CRUD 。:如何启动?在 appliaction/...

    CodeIgniter:我的第一个 CI 项目

    代码点火器 我的第一个 CodeIgniter 项目。 使用 codeigniter 创建各种游戏。 内容 “大富乡” 如何开始 待定详情... Git克隆这个docker-compose up -d mysql nginx 移民 使用浏览器访问 。

    CodeIgniter4-4.0.2_CodeIgniter4_ci_

    这个名为"CodeIgniter4-4.0.2_CodeIgniter4_ci_"的压缩包文件包含了CodeIgniter4的第4.0.2版本。CodeIgniter4是一个重要的里程碑,因为它带来了许多改进和新特性,旨在提升开发者的体验和应用程序的性能。 1. **MVC...

    CodeIgniter框架

    了解了这些核心特性后,我们可以通过以下步骤开始使用CodeIgniter: 1. **安装**:下载CodeIgniter框架并解压,将项目文件上传至服务器或本地开发环境。 2. **配置**:根据项目需求设置配置文件,如数据库连接、URL...

    codeigniter的简单示例

    在这个"codeigniter的简单示例"中,我们将深入探讨CodeIgniter的核心概念和基本用法。 1. **MVC架构**: MVC是软件设计中的一个经典模式,用于分离业务逻辑、数据处理和用户界面。在CodeIgniter中,模型(Model)...

    InfiQr-codeigniter:用于PHP Codeigniter的InfiQR Qrcode生成器库

    // Load library in your controller $this-&gt;load-&gt;library('infiqr'); // Call Infiqr and pass the content to simply generate image output in your controller $this-&gt;infiqr-&gt;generate('Hello, testing ...

    Laravel开发-codeigniter_migration

    **Laravel 开发与 CodeIgniter 迁移** 在现代 Web 开发中,Laravel 和 CodeIgniter 都是 PHP 的流行框架,各自拥有独特的优点和特性。Laravel 是一个全面且富有表现力的框架,提供了许多高级特性和工具,如Artisan ...

Global site tag (gtag.js) - Google Analytics