如何在单击时,使开关按钮后的分贝 [英] How to make a switch button post to the db when clicked

查看:122
本文介绍了如何在单击时,使开关按钮后的分贝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图找出如何使一个拨动开关按钮后要当它是pressed,以便它可以更新信息数据库:。就像一个提交按钮。这是我的codeigniter应用程序的看法。

 <脚本类型=文/ JavaScript的>

jQuery的(文件)。就绪(函数(){

    jQuery的('。switch_options')。每个(函数(){

        //这个对象
        VAR OBJ = jQuery的(本);

        变种ENB = obj.children('switch_enable。'); //缓存第一个元素,这等于开
        VAR DSB = obj.children('switch_disable。'); //缓存第一个元素,这相当于关闭
        VAR输入= obj.children('输入'); //缓存元素所在大家一定要设置的值
        VAR input_val = obj.children(输入)VAL()。 //缓存元素所在大家一定要设置的值

        / *检查选择* /
        如果('NO'== input_val){
            dsb.addClass('选择');
        }
        否则,如果(是== input_val){
            enb.addClass('选择');
        }

        //操作用户的点击(ON)
        enb.on('点击',函数(){
            $(DSB).removeClass('选择'); // remove从这个对象类的其他元素(OFF)入选
            $(本).addClass('选择'); //添加入选这是刚刚单击此对象类的元素(ON)
            $(输入).VAL(是)改变()。 //最后将值更改为1
        });

        //用户的点击动作(OFF)
        dsb.on('点击',函数(){
            $(ENB).removeClass('选择'); //删除在该对象类的其他元素选择(ON)
            $(本).addClass('选择'); //添加入选这是刚刚单击此对象类的元素(OFF)
            $(输入).VAL('否')改变()。 // //最后将值更改为0
        });

    });

});


< / SCRIPT>
 

拨动开关HTML code

 < D​​IV CLASS =switch_options>
 <标签类=COL-SM-5的控制标签>完成:其中; /标签>
    <跨度类=switch_enable>是< / SPAN>
    <跨度类=switch_disable> NO< / SPAN>
    <输入类型=隐藏级=默认值=< PHP的echo $ E->完成;>中>
    <输入类型=隐藏名称=完成级=switch_val值=/>

< / DIV>
 

控制器

 < PHP的,如果(定义(BASEPATH')!)出口('没有直接的脚本允许访问);

一流的呼唤扩展是CI_Controller {

    功能__construct()
    {
        父:: __结构();
        $这个 - >负载>模型('callin_model');

        }

    //显示仪表板
    公共功能指数()
    {
         如果($这个 - >会话级>用户数据(logged_admin'))
        {
        $这个 - >负载>查看('模板/ admin_header');
        $这个 - >负载>查看('insert_callins_view');


       }其他{
           重定向('admin_authentication / admin_login_show');

        }

    }
    //将呼入
    公共职能insert_callin()
    {
 如果($这个 - >会话级>用户数据(logged_admin'))
        {

    $数据=阵列('Date_Scheduled'=> $这个 - >输入 - >后期('Date_Scheduled),
            Employee_Name'=> $这个 - >输入 - >后期('Employee_Name),
            EMPLOYEE_NUMBER'=> $这个 - >输入 - >后期('EMPLOYEE_NUMBER),
            Time_Reported'=> $这个 - >输入 - >后期('Time_Reported),
            '理性'=> $这个 - >输入 - >后(理由),
            Scheduled_Area'=> $这个 - >输入 - >后期('Scheduled_Area),
            '跟'=> $这个 - >输入 - >后期(联系方式),
            '审批'=> $这个 - >输入 - >后期('批准'),
            完整=> $这个 - >输入 - >后期(完整),
            状态=> 1);

        //的print_r($的数据);

            $结果= $这个 - > callin_model-> insert_callin($的数据);
            如果($结果大于0)
        {
            $这个 - >会话级> set_flashdata(味精,呼唤记录成功添加);
            重定向('呼唤');

        }
        其他
        {

            $这个 - >会话级> set_flashdata('MSG1,呼唤记录添加失败);
            重定向('呼唤');


        }

         }其他{
           重定向('admin_authentication / admin_login_show');

        }

    }
    // callins名单
        公共职能list_callins()
    {


         如果($这个 - >会话级>用户数据(logged_admin'))
        {


            $数据['呼唤'] = $这个 - > callin_model-> get_callin();

            $这个 - >负载>查看('模板/ admin_header');
            $这个 - >负载>查看('admin_callins_view',$数据);

               }其他{
           重定向('admin_authentication / admin_login_show');

        }


    }
    // callins名单
        公共职能viewlist_callins()
    {

           如果($这个 - >会话级>用户数据(LOGGED_IN'))
        {

            $数据['呼唤'] = $这个 - > callin_model-> get_callin();
            $这个 - >负载>查看('模板/头');
            $这个 - >负载>查看('user_callins_view',$数据);


               }其他{
           重定向('user_authentication / user_login_show');

        }
    }

    公共职能delete_callin()
    {
        的$ id = $这个 - >输入 - >后期('身份证');
        $数据=阵列(状态= 0);
        $结果= $这个 - > callin_model-> delete_callin($ ID,$数据);
        如果($结果==真)
        {
            $这个 - >会话级> set_flashdata('MSG1,删除成功);
            重定向('呼入/ list_callins');

        }
        其他
        {

            $这个 - >会话级> set_flashdata('MSG1,呼唤记录删除失败);
            重定向('呼入/ list_callins');


        }

    }



    公共职能edit_callin()
    {

        的$ id = $这个 - > URI的>段(3);
        $数据['呼唤'] = $这个 - > callin_model-> edit_callin($ ID);
        $这个 - >负载>查看('模板/ admin_header',$数据);
        $这个 - >负载>查看('edit_callin');


    }
    公共职能update_callin()
    {


        的$ id = $这个 - >输入 - >后期('身份证');

        $数据=阵列('Date_Scheduled'=> $这个 - >输入 - >后期('Date_Scheduled),
            Employee_Name'=> $这个 - >输入 - >后期('Employee_Name),
            EMPLOYEE_NUMBER'=> $这个 - >输入 - >后期('EMPLOYEE_NUMBER),
            Time_Reported'=> $这个 - >输入 - >后期('Time_Reported),
            '理性'=> $这个 - >输入 - >后(理由),
            Scheduled_Area'=> $这个 - >输入 - >后期('Scheduled_Area),
            '跟'=> $这个 - >输入 - >后期(联系方式),
            '审批'=> $这个 - >输入 - >后期('批准'),
            完整=> $这个 - >输入 - >后期('完成'));
            //的print_r($的数据);
        $结果= $这个 - > callin_model-> update_callin($数据,$ ID);
        如果($结果)
        {
            $这个 - >会话级> set_flashdata(味精,呼唤记录更新成功);
            重定向('呼入/ list_callins');



        }
        其他
        {

            $这个 - >会话级> set_flashdata('MSG1,不改变在制造呼入记录);
            重定向('呼入/ list_callins');


        }
    }

}
?>
 

模式

 < PHP

类Callin_Model扩展CI_Model
{

    公共职能insert_callin($的数据)
    {
    $这个 - > DB->插入('callin_list',$数据);
返回$这个 - > DB-> INSERT_ID();
    }
    公共职能get_callin()
    {

        $这个 - > DB->选择(*);
        $这 - > DB-肽从('callin_list');
        $这个 - > DB-化合物其中(状态,1);
        $这个 - > DB-> ORDER_BY(ID,说明);
        $这个 - > DB-> ORDER_BY(Scheduled_Area,说明);
        $这个 - > DB-> ORDER_BY(理,说明);

        $查询= $这个 - > DB->获得();
        返回$查询 - >的结果();


    }
    公共职能delete_callin($ ID,$数据)
    {
        $这个 - > DB-化合物其中('身份证',$ id)的;
        $这个 - > DB->更新(callin_list',$数据);
            返回的print_r($的数据);


    }
    公共职能edit_callin($ ID)
    {
        $这个 - > DB->选择(*);
        $这 - > DB-肽从('callin_list');
        $这个 - > DB-化合物其中('身份证',$ id)的;
        $这个 - > DB-化合物其中(状态,1);
        $查询= $这个 - > DB->获得();
        返回$查询 - >的结果();

    }
    公共职能update_callin($数据,$ ID)
    {
        $这个 - > DB-化合物其中('身份证',$ id)的;
        $这个 - > DB->更新(callin_list',$数据);
        返回的print_r($的数据);

    }
}
 

解决方案

您可以尝试这样的:

 < D​​IV CLASS =switch_options为='<?PHP的echo $ EMPLOYEE_NUMBER;?>'>
 <标签类=COL-SM-5的控制标签>完成:其中; /标签>
    <跨度VAL =真正的类=切换switch_enable>是< / SPAN>
    <跨度VAL ='假'级=切换switch_disable> NO< / SPAN>
< / DIV>
<脚本>
$('开关')。点击(函数(){
  VAR ID = $(本).parent()ATTR('为')。
  VAR完整= $(本).attr(VAL);
  VAR的=这一点;
   $阿贾克斯({
        网址:< PHP的回声BASE_URL();> edit_complete?,
        类型:后,
        数据:'完​​整='+完整的+'ID ='+ ID,
        成功:功能(数据){
            如果(data.indexOf(编辑完成OK)> = 0){
              $(这).addClass('选择');
              $(这).siblings('开关')removeClass移除('选择')。
            }
        }
    });
});
< / SCRIPT>
 

您将需要一个控制器来工作,你的数据库query.Here是:

 公共职能edit_complete(){
   如果($这个 - >会话级>用户数据(logged_admin')){
      $ complete_value = $这个 - >输入 - >后期('完成');
      $ EMPLOYEE_NUMBER = $这个 - >输入 - >后期('身份证');
      如果($这个 - > callin_model-> edit_complete($ EMPLOYEE_NUMBER,$ complete_value)){
        回声编辑完成OK';
      }
   }
 }
 

和你的模型中:

 函数edit_complete($ EMPLOYEE_NUMBER,$ complete_value){
  $数据=阵列(完整=> $ complete_value);
  $这 - > DB-化合物其中('EMPLOYEE_NUMBER',$ EMPLOYEE_NUMBER);
  $这个 - > DB->更新(mytable_name',$数据);
  如果($这个 - > DB-> affected_rows()== 1)返回TRUE;
  返回FALSE;
}
 

I am trying to figure out how to make a toggle switch button post to the db when it is pressed, so that it can update the info: yes or no. Like a submit button. This is in the view of my codeigniter app.

<script type="text/javascript">

jQuery(document).ready(function() {

    jQuery('.switch_options').each(function() {

        //This object
        var obj = jQuery(this);

        var enb = obj.children('.switch_enable'); //cache first element, this is equal to ON
        var dsb = obj.children('.switch_disable'); //cache first element, this is equal to OFF
        var input = obj.children('input'); //cache the element where we must set the value
        var input_val = obj.children('input').val(); //cache the element where we must set the value

        /* Check selected */
        if( 'NO' == input_val ){
            dsb.addClass('selected');
        }
        else if( 'Yes' == input_val ){
            enb.addClass('selected');
        }

        //Action on user's click(ON)
        enb.on('click', function(){
            $(dsb).removeClass('selected'); //remove "selected" from other elements in this object class(OFF)
            $(this).addClass('selected'); //add "selected" to the element which was just clicked in this object class(ON) 
            $(input).val('Yes').change(); //Finally change the value to 1
        });

        //Action on user's click(OFF)
        dsb.on('click', function(){
            $(enb).removeClass('selected'); //remove "selected" from other elements in this object class(ON)
            $(this).addClass('selected'); //add "selected" to the element which was just clicked in this object class(OFF) 
            $(input).val('NO').change(); // //Finally change the value to 0
        });

    });

});


</script>

toggle switch html code

<div class="switch_options">
 <label class="col-sm-5 control-label">Complete: </label>
    <span class="switch_enable"> Yes </span>
    <span class="switch_disable"> NO </span>
    <input type="hidden" class="default"value="<?php echo $e->Complete;?>">
    <input type="hidden" name="Complete" class="switch_val" value=""/>

</div>

controller

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Callin extends CI_Controller {

    function __construct()
    {
        parent::__construct();
        $this->load->model('callin_model');

        }   

    //Shows the dashboard
    public function index()
    {
         if($this->session->userdata('logged_admin'))
        {      
        $this->load->view('templates/admin_header');
        $this->load->view('insert_callins_view');


       }else{
           redirect('admin_authentication/admin_login_show');

        }

    }
    //Insert the callin 
    public function  insert_callin()
    { 
 if($this->session->userdata('logged_admin'))
        {     

    $data=array('Date_Scheduled'=>$this->input->post('Date_Scheduled'),
            'Employee_Name'=>$this->input->post('Employee_Name'),
            'Employee_Number'=>$this->input->post('Employee_Number'),
            'Time_Reported'=>$this->input->post('Time_Reported'),
            'Reason'=>$this->input->post('Reason'),
            'Scheduled_Area'=>$this->input->post('Scheduled_Area'),
            'Contact'=>$this->input->post('Contact'),
            'Approval'=>$this->input->post('Approval'),
            'Complete'=>$this->input->post('Complete'),
            'status'=>1);

        //print_r($data);

            $result=$this->callin_model->insert_callin($data); 
            if($result > 0) 
        {
            $this->session->set_flashdata('msg',"Callin Record Added Successfully");
            redirect('callin');

        }
        else
        {

            $this->session->set_flashdata('msg1',"Callin Record Added Failed");
            redirect('callin');


        }

         }else{
           redirect('admin_authentication/admin_login_show');

        }

    }
    //List of callins 
        public function list_callins()
    {


         if($this->session->userdata('logged_admin'))
        {  


            $data['callin'] =$this->callin_model->get_callin();

            $this->load->view('templates/admin_header');
            $this->load->view('admin_callins_view',$data);

               }else{
           redirect('admin_authentication/admin_login_show');

        }


    }
    //List of callins
        public function viewlist_callins()
    {

           if($this->session->userdata('logged_in'))
        {  

            $data['callin']=$this->callin_model->get_callin();
            $this->load->view('templates/header');
            $this->load->view('user_callins_view',$data);


               }else{
           redirect('user_authentication/user_login_show');

        }
    }

    public function delete_callin()
    {
        $id=$this->input->post('id');
        $data=array('status'=>0);
        $result=$this->callin_model->delete_callin($id,$data);
        if($result==true)
        {
            $this->session->set_flashdata('msg1',"Deleted Successfully");
            redirect('callin/list_callins');

        }
        else
        {

            $this->session->set_flashdata('msg1',"callin Record Deletion Failed");
            redirect('callin/list_callins');


        }

    }



    public function edit_callin()
    {

        $id=$this->uri->segment(3);
        $data['callin']=$this->callin_model->edit_callin($id);
        $this->load->view('templates/admin_header',$data);
        $this->load->view('edit_callin');


    }
    public function  update_callin()
    {


        $id=$this->input->post('id');

        $data=array('Date_Scheduled'=>$this->input->post('Date_Scheduled'),
            'Employee_Name'=>$this->input->post('Employee_Name'),
            'Employee_Number'=>$this->input->post('Employee_Number'),
            'Time_Reported'=>$this->input->post('Time_Reported'),
            'Reason'=>$this->input->post('Reason'),
            'Scheduled_Area'=>$this->input->post('Scheduled_Area'),
            'Contact'=>$this->input->post('Contact'),
            'Approval'=>$this->input->post('Approval'),
            'Complete'=>$this->input->post('Complete'));
            //print_r($data);   
        $result=$this->callin_model->update_callin($data,$id);
        if($result)
        {
            $this->session->set_flashdata('msg',"Callin Record Updated Successfully");
            redirect('callin/list_callins');



        }
        else
        {

            $this->session->set_flashdata('msg1',"No changes Made in Callin Record");
            redirect('callin/list_callins');


        }
    }

}
?>

model

<?php

class Callin_Model extends CI_Model 
{

    public function insert_callin($data)
    {
    $this->db->insert('callin_list',$data); 
return $this->db->insert_id(); 
    }
    public function get_callin()
    {

        $this->db->select('*');
        $this->db->from('callin_list');
        $this->db->where('status',1);
        $this->db->order_by("id", "desc");
        $this->db->order_by("Scheduled_Area", "desc");
        $this->db->order_by("Reason", "desc");

        $query =$this->db->get();
        return $query->result();


    } 
    public function delete_callin($id,$data)
    {
        $this->db->where('id',$id);
        $this->db->update('callin_list',$data);
            return print_r($data);


    }
    public function edit_callin($id)
    {
        $this->db->select('*');
        $this->db->from('callin_list');
        $this->db->where('id',$id);
        $this->db->where('status',1);
        $query =$this->db->get();
        return $query->result();

    }
    public function update_callin($data,$id)
    {
        $this->db->where('id',$id);
        $this->db->update('callin_list',$data);
        return print_r($data);

    }
}

解决方案

You could try something like this:

<div class="switch_options" for='<?php echo $Employee_Number;?>'>
 <label class="col-sm-5 control-label">Complete: </label>
    <span val='true' class="switch switch_enable"> Yes </span>
    <span val='false' class="switch switch_disable"> NO </span>
</div>
<script>
$('.switch').click(function(){
  var id = $(this).parent().attr('for');
  var complete = $(this).attr('val');
  var that = this;
   $.ajax({
        url: "<?php echo base_url();?>edit_complete",
        type: "post",
        data: 'complete='+complete+'id='+id,
        success: function(data){
            if (data.indexOf("Edit complete OK") >= 0){
              $(that).addClass('selected');
              $(that).siblings('.switch').removeClass('selected');
            }
        }
    });
});
</script>

You will need a controller to work your database query.Here it is:

 public function  edit_complete() { 
   if($this->session->userdata('logged_admin')){ 
      $complete_value = $this->input->post('complete');
      $Employee_Number = $this->input->post('id');
      if($this->callin_model->edit_complete($Employee_Number, $complete_value)){
        echo 'Edit complete OK';
      }
   }
 }

And inside your model:

function edit_complete($Employee_Number,$complete_value){
  $data = array('Complete' => $complete_value);
  $this->db->where('Employee_Number', $Employee_Number);
  $this->db->update('mytable_name', $data);
  if($this->db->affected_rows()==1)return TRUE;
  return FALSE;
}

这篇关于如何在单击时,使开关按钮后的分贝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆