如何在单击时,使开关按钮后的分贝 [英] How to make a switch button post to the db when clicked
本文介绍了如何在单击时,使开关按钮后的分贝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图找出如何使一个拨动开关按钮后要当它是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
< DIV 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($的数据);
}
}
解决方案
您可以尝试这样的:
< DIV 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屋!
查看全文