减少代码的大小 - Codeigniter

时间:2014-09-05 05:05:09

标签: php jquery codeigniter

我的观点有点像这样:

Message : Enable (When I click Enable. Enable will be disables and Disable will be reflected, Same process for all the three)
subscribe : Disable (clickable)
Email : Enable (clickable)

我在视图中的脚本

$(document).ready(function() {
    var controller = 'settings';
    var base_url = '<?php echo site_url(); ?>';
    var currentuserid = <?php echo $current_user; ?>;
    $( '.mess_disable' ).click(function() {
        $.ajax({
            'url' : base_url + '' + controller + '/enablemessagenotification',
            'type' : 'POST',
            'data' : {'currentuserid' : currentuserid },
            'success' : function(data){                                    
                    $('.mess_enable').show();
                    $('.mess_disable').hide();
                    location.reload();
            }
        });
    });

我的控制器

    function enablemessagenotification()
    {
     $userid = $this->input->post('currentuserid');

    $data = array(
                 'email-message'=>'0',
             );

    $this->db->where('id',$userid);
    $this->db->update('users',$data);     
    }

以下工作正常。

我的问题是,我写了近6个函数和6个脚本(用于启用和禁用)。要为所有人发短信太难了。可以以任何方式减少代码。

1 个答案:

答案 0 :(得分:2)

如果我已正确理解您的代码,您可以执行以下操作:

- 对于脚本,您可以在每个按钮中添加相同的类,以便只使用一个脚本显示或隐藏它们。

- 对于这些函数,您可以在html隐藏输入中添加db所需的参数,您可以使用按钮将其传递给php,如下所示:

    <input type="hidden" name="email-message" id="mess" value="">
    <button id="mess" class="same-class">Message</button>

上面的信息已经传入php,您可以使用一个带开关的功能,最有可能为所有三个按钮提供服务。