Yii通过Ajax修改字段值的方法

来源:互联网 发布:天猫网络环境异常 编辑:程序博客网 时间:2024/05/22 05:25
Ajax修改状态:

HTML部分

<td><span data-field="audit_state" data-val="<?php echo $val -> audit_state;?>" class="<?php if($val -> audit_state != 1):?>no_<?php endif;?>shenhe set-field"></span></td><td><span data-field="essence_state" data-val="<?php echo $val -> essence_state;?>" class="<?php if($val -> essence_state != 1):?>no_<?php endif;?>shenhe set-field"></span></td>
jQuery部分:(单个删除的原理一样,因为做的是假删除,只是将is_hidden字段的值由0改为1,就是删除操作。)

/** * 审核  加精 */$('.set-field').bind('click', function(){    var id = parseInt($(this).parents('tr').find('.id').val());    var field = $(this).attr('data-field');    var val = $(this).attr('data-val');    var $field = $(this);    if ( val == 1 )    {        val = 0;    }    else    {        val = 1;    }    if ( id > 0 )    {        var postData = {"id": id};        switch( field )        {            case 'essence_state':                postData.essence_state = val;                break;            case 'audit_state':                postData.audit_state = val;                break;        }                $.post('/businesscomment/setfield', postData, function(data){            var data = eval( '(' + data + ')');            if ( data.status == 0 )            {                $.msgbox.show({message: data.msg,icon: 'ok',timeOut: '1000'});                $field.attr('data-val', val);                if ( $field.hasClass('no_shenhe') )                {                    $field.removeClass('no_shenhe').addClass('shenhe');                }                else                {                    $field.removeClass('shenhe').addClass('no_shenhe');                }            }            else            {                $.msgbox.show({                    message: data.msg,                    icon: 'no',                    timeOut: '2000'                });            }        });    }});/** * 批量删除(批量删除和批量审核的原理一样) */$('#delete').bind('click', function(){    var idLength = $('.id:checked').length;    if ( idLength == 0 )    {        $.msgbox.show({            message: '请选择要删除的文章',            icon: 'no',            modal: true,            timeOut: '2000'        });        return false;    }    var ids = [];    var i = 0;    $('.id').each(function(){        if ( typeof($(this).attr('checked')) !== 'undefined' )        {            ids[i++] = $(this).val();        }    });    $("#dialog").html('').attr('title','系统提示').html("<p>删除文章后不可恢复,后果自负,确认删除吗?</p>").dialog({    modal: true,buttons: {'确定删除':function() {if ( idLength > 0 )            {$(this).dialog( "close" );        var postData = {"id": ids, "is_hidden" : 1};        $.post('/businesscomment/setfield', postData, function(data){            var data = eval( '(' + data + ')');            if ( data.status == 0 )            {                $.msgbox.show({                    message: '删除成功',                    icon: 'ok',                    timeOut: '2000'                });                setTimeout(function(){window.location.reload();},1000);            }            else            {                $.msgbox.show({                    message: '删除失败',                    icon: 'no',                    timeOut: '2000'                });            }        });            }},        '取消':function() {                $(this).dialog( "close" );            }}    });});

控制器部分:

/** * 修改分类字段 */public function actionSetField(){    $id = Yii::app() -> request -> getParam('id');    if ( ! $id )    {        Util::json(array('status' => 1, 'msg' => '修改失败,id不存在'), 1);    }    $essence = Yii::app() -> request -> getParam('essence_state', null);    $audit = Yii::app() -> request -> getParam('audit_state', null);    $isHidden = Yii::app() -> request -> getParam('is_hidden', null);        $data = array();    //加精    if ( $essence !== null )    {        $data['essence_state'] = $essence;    }    //审核if ( $audit !== null )    {        $data['audit_state'] = $audit;    }//删除    if ( $isHidden !== null )    {        $data['is_hidden'] = $isHidden;    }        $rows = 0;    if ( $data )    {        //批量操作        if ( is_array($id) )        {            $ids = join(',', $id);            $data['employee_id'] = $this->user['employee_id'];            $rows = BusinessComment::model() -> updateAll($data, "id IN({$ids})");        }        //单个操作        else        {        $data['employee_id'] = $this->user['employee_id'];            $rows = BusinessComment::model() -> updateByPk($id, $data);        }    }    if ( $rows )    {       Util::json(array('status' => 0, 'msg' => '修改成功'), 1);    }    else    {        Util::json(array('status' => 1, 'msg' => '修改失败'), 1);    }}

dialog是自定义的一个插件,里面包含的弹窗。可以忽略不看...

0 0
原创粉丝点击