【问题标题】:update status value in backend while click on button in codeigniter单击codeigniter中的按钮时更新后端的状态值
【发布时间】:2017-02-24 04:38:08
【问题描述】:

在我的应用程序的view_candidates 表单中,我有一个带有文本REQUEST CONTACT INFO 的按钮。当我点击按钮时,文本将自动更改为FINISH

现在会发生什么:当我刷新页面时,按钮文本会自动更改为 REQUEST CONTACT INFO

为了克服这个问题,我在我的数据库中提供了一个status 列。

我想要什么:

一旦用户点击按钮,status 应该从 0 变为 1。

使用status,我想显示我的按钮文本,例如:如果状态=0,按钮应该是REQUEST CONTACT INFO,否则应该是FINISH

按钮代码:

<td>
    <button type="button" id="button" class="btn btn-info" onclick="getConfirmation(id);">
        <b>REQUEST CONTACT INFO</b>
    </button>
</td>

脚本:

<script>
     function  getConfirmation(id)
     {

        var retVal = confirm("your request is confiremed ?");
        if(retVal)
                        {

                          $('#button').text('Finish');

        $.ajax({
                url: "Candidate/user_view_candidates/change_status",
                type: "post",
                data: id,
                success: function (response) 
                {
                 //location.reload();              
                 alert('success');
                }

            });
        }
    }

    </script>

控制器代码:

    public function  change_status()

 { 

     $id = $this->input->post('candidate_id');
     $status = $this->db->query("select status from candidates_details          where id = candidate_id")->row()->status;
    if($status==0)
    {
        $status = 1;
    } 
    else 
    {
        $status = 0;
    }

    $data=array('status'=>$status);
    $this->db->where('candidate_id',$id);
    $this->db->update('candidates_details',$data);
}

有人可以帮助我吗?
提前致谢。

【问题讨论】:

    标签: javascript jquery codeigniter


    【解决方案1】:

    检查这个:

    查看

    <input type="hidden" name="candidate_id" value="<?php echo $candidate_id; ?>"/>//your candidate_id
    <button type="button" id="button" class="btn btn-info" >
        <b><?php $status == 0? 'REQUEST CONTACT INFO':'FINISHED';?></b>//your status value
    </button>
    
    <script src="<?php echo base_url(); ?>assets/plugins/jquery.min.js"></script>
    

    js

    $('#button').click(function() {
        var candidate_id = $('input[name="candidate_id"]').val();
        var url = 'your_cntroller_name/change_status/';
        $.ajax({
            url: your_base_url + url,
            type: 'POST',
            data: {'$candidate_id': $candidate_id},
            dataType: 'JSON',
            success: function(data) {    
                 $('#button').text('FINISHED');
            }
        });
    });
    

    控制器

    public function change_status() {
        $candidate_id = $this->input->post('candidate_id');
        $this->your_model->update_status($candidate_id);
    
        echo true;
        exit;
    }
    

    型号

    public function update_status($candidate_id) {
    
        //your query toupdate status
    
    }
    

    【讨论】:

    • @M5533,如果您对基本的 PHP 或 CodeIgniter 不清楚,请考虑阅读一些基本教程。 digitalocean.com/community/tutorials/…
    • @M5533 你的意思是status字段没有改成1吗?
    • 数据库 0 中的状态字段已更改为 1..按钮文本未更改为已完成
    • 添加:alert('test');行前 - $('#button').text('FINISHED');并检查警报是否有效
    • 警报也不来
    【解决方案2】:

    完整的分步解决方案是 步骤1 在你看来

    <td><button type="button" id="button" class="btn btn-info" onclick="getConfirmation(row id);"><b>REQUEST CONTACT INFO</b></button></td>
    
    getConfirmation(id){
    $.ajax({
            url: "url_to_your_controller/change_status",
            type: "post",
            data: id,
            success: function (response) {
             location.reload();              
    
            }
        });
    }
    

    步骤-2 在你的控制器中

    change_status(){
    $id = $this->input->post('id');
    $status = $this->db->query("Your query")->row()->status;
    if($status==1){
        $status = 0;
    } else {
        $status = 1;
    }
    $data=array('status'=>$status);
    $this->db->where('id','id');
    $this->db->update('table_name',$data);
    }
    

    【讨论】:

    • 我会尽力让你知道
    • 我必须在这里写哪个查询...$this->db->query("Your query")
    • 您必须从表格中选择您的状态字段
    • $status = $this->db->query("select status from table where id = id")->row()->status;
    • } else { ?> } ?> 我需要在视图中添加这段代码吗?
    【解决方案3】:

    根据您的问题,我了解到您正在网格/表格中显示您的记录,并且对于一行中的每条记录,当您单击按钮时,您都有一个按钮,它会更改记录的状态。

    所以解决方案很简单 onclick 使用 ajax 调用更改状态,并在 DB 中为每条记录添加一个字段状态,默认情况下为 0,在 onclick 后它将更新为 1

    在页面加载时,您必须在视图中实施检查

    例如

     <?if(status==0){?>
    <td><button type="button"><b>Working</b></button></td>
    <? } else { ?>
    <td><button type="button"><b>Finished</b></button></td>
    <? } ?>
    

    【讨论】:

    • 那么控制器和模型呢..我们需要在控制器和模型中写什么
    • 完整的分步解决方案是
    猜你喜欢
    • 2020-01-12
    • 2023-02-08
    • 2022-07-08
    • 1970-01-01
    • 2020-08-20
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多