Yii 1.1: Create custom button button with AJAX function in CGridView



CButtonColumn in CGridView can be customised to include user built buttons. To learn a great deal about including custom buttons, read this excellent wiki. This tutorial will show how to call an action from one custom button using AJAX instead of regular GET calls.

How to

  1. Create a custom button in your grid. You can follow this tutorial for that.
  2. In the 'url' parameter of your button, you call your controller action:
  • In the 'click' function of your button you add the following code:
    $.fn.yiiGridView.update('my-grid', {  //change my-grid to your grid's name
        success:function(data) {
              $.fn.yiiGridView.update('my-grid'); //change my-grid to your grid's name
    return false;

This will call the controller function using AJAX instead of redirecting the user to the url using GET parameters.


We will create a button that sends email to the user and then prints a success flash screen.

In your controller:

public function actionEmail($id)
  $model = $this->loadModel($id);
  $email = $model->email; //this is the user email
  if (mail($email, 'My Subject', 'my message'))
    echo 'email sent to '.$email;
  // if AJAX request, we should not redirect the browser

In your view file, in a CButtonColumn of the grid:

        'email' => array
            'label'=>'Send an e-mail to this user',
                                    $.fn.yiiGridView.update('user-grid', {
                                        success:function(data) {
                                              $('#AjFlash').html(data).fadeIn().animate({opacity: 1.0}, 3000).fadeOut('slow');
                                    return false;

In your view file you also need to include the div for the flash message:

<div id='AjFlash' class="flash-success" style="display:none"></div>

Total 2 comments

#19493 report it
abb4s at 2015/08/03 05:01am

thanks ! i have really problem with that and finally i can't understand complete what is $.fn and how does work ?! can you explain it please?!

#14256 report it
Abhishek Shah at 2013/07/30 07:10am
Nice tutorial!

Nice try to explain it!It will very helpful to begineers and who want to do things with ajax!

Leave a comment

Please to leave your comment.

Write new article
  • Written by: nkd
  • Category: How-tos
  • Yii Version: 1.1
  • Votes: +19
  • Viewed: 51,338 times
  • Created on: Oct 23, 2012
  • Last updated: Oct 24, 2012
  • Tags: ajax request, CGridView