dropdownlist is not updating in yii framework

Good day!

I’m using

In my Views , I have this code:

Main Page


$cs->registerScriptFile($baseUrl . '/js/manageLocation.js', CClientScript::POS_HEAD);




    /** Start Widget **/

    $this->beginWidget('zii.widgets.jui.CJuiDialog',array(

        'id'=>'dialog',

        'options' => array(

                'title' => 'Locations Management',

                'autoOpen' => false,

                'modal' => true,

                'resizable' => false,

                'dialogClass' => 'managelocation-dialog-class',

                'show'=>array(

                        'effect'=>'drop',

                        'duration'=>500,

                ),

                'hide'=>array(

                        'effect'=>'drop',

                        'duration'=>500,

                ),

        ),


    ));




    /**

     * Render dialog view.

     */

    echo $this->renderPartial('manageLocationDialog', array(

            'model' => $model,

            'locationInfo' => $locationInfo,

    ));




    $this->endWidget('zii.widgets.jui.CJuiDialog');




    /**

     * Filter Dialog widget

     */

    $this->beginWidget('zii.widgets.jui.CJuiDialog',array(

            'id'=>'filter-dialog',

            'options' => array(

                    'title' => 'Filter',

                    'autoOpen' => false,

                    'modal' => true,

                    'resizable' => false,

                    'width' => 350,

                    'dialogClass' => 'location-dialog-class',

                    'show'=>array(

                            'effect'=>'drop',

                            'duration'=>500,

                    ),

                    'hide'=>array(

                            'effect'=>'drop',

                            'duration'=>500,

                    ),

            ),


    ));


    /**

     * Render the filter dialog view.

    */

    echo $this->renderPartial('manageLocationFilter', array(

            'filterFormloc' => $filterFormloc,

            'locationInfo' => $locationInfo,

    ));


    $this->endWidget('zii.widgets.jui.CJuiDialog');


?>

Add/Edit Dialog




<div id="action-button-div" class="row">

        <?php

            echo CHtml::button('Create New', array(

                'id'=>'action-button',

                'class'=>'submit-button',

                'onclick'=>"{submitActionJs();}",

                'update' =>'#filter_province_name',

            ));

        ?>

        <?php

            echo CHtml::button('Cancel', array(

                'id'=>'cancel-button',

                'onclick'=>'{$("#dialog").dialog("close");}',

            ));

        ?>

    </div>



In my JS file, below is my code:




function submitActionJs() {

    $.ajax({

        url: 'registerLocation',

        type: 'POST',

        datatype: 'json',

        data: $('form').serializeArray(),

        timeout: 5000,

        beforeSend: function(){

            $('#dialog-msg').html('Processing...');

        },

        success: function(data){

            var res = eval('(' + data + ')');

            $('#dialog-msg').html(res.messages);

            if (res.status == 'success'){

                $("#message-label").html(res.messages);

                $.fn.yiiGridView.update('managelocation-grid');

                $("#dialog").dialog("close");

                $("div.dialog-contents-container").html(data.content);

            } else {

                $('#dialog-msg').html(res.messages);

            }


        },

        error: function(){

            $('#dialog-msg').html('Ajax Communication Error.');

        }

    }

    );

}



In my controller, below is my code:




public function actionRegisterLocation() {


    $model = new ManageLocationForm;

    if (isset($_POST['ManageLocationForm']))

    {


        $model->attributes = $_POST['ManageLocationForm'];


        if (Yii::app()->request->isAjaxRequest)

        {

            if ($model->hasErrors())

            {

                $errors = '';

                foreach ($model->getErrors() as $e) $errors .= implode($e).'<br>';

                echo CJSON::encode(array(

                        'status'=>'failure',

                        'messages'=>$errors

                ));

            }

            else

            {

                $locationInfo = new LocationInfo;

                if ($model->operation_mode === AdminGeneralHelper::OPERATION_MODE_UPDATE)

                {

                    $locationInfo=LocationInfo::model()->findByPk($model->location_id);

                }

                $locationInfo->short_name = $model->short_name;

                $locationInfo->town_name = $model->town_name;

                $locationInfo->province_name = $model->province_name;


                $locationInfo->save();




                if ($locationInfo->hasErrors())

                {

                    $errors = '';

                    foreach ($locationInfo->getErrors() as $e) $errors .= implode($e).'<br>';

                    echo CJSON::encode(array(

                            'status'=>'failure',

                            'messages'=>$errors

                    ));

                }

                echo CJSON::encode(array(

                        'status' => 'success',

                        'messages' => $_message,

                ));

            //  Yii::trace(cVarDumper::dumpAsString($_message));

            }

            exit;

        }

    }

    else

    {

        echo "FALSE";

    }

    Yii::app()->end();

}



Below is the scenario:

[list=1]

[*]I open the dialog for Adding a location. (Parameters are short_name, town, and province)

[*]Location was Successfully added in the Grid View and DB.

[*]I open the dialog for filter. It can only filter by Province.

[*]When I take a look at the Dropdown lists, Location that was successfully added is not on the lists.

[/list]

My question is how to update the dropdown lists of filter dialog after I successfully added a location. Alternative solution is I need to refresh the browser then open the filter dialog. But it is not that user friendly. Its really a bug.

Please help me to solve this.

Thank you and More Power!