在codeigntier中获取值并在无页面刷新的模式弹出窗口中更新

xmakbtuz  于 2021-06-23  发布在  Mysql
关注(0)|答案(2)|浏览(388)

伙计们,我正在尝试从模式弹出窗口中获取值,并在codeigniter中更新值而不刷新页面,有人能帮我怎么做吗
这是我的模式弹出窗口:

<td class='text-center'>
    <form method="post" action="" id="emp-update">
        <input type="hidden" name="emp_id" value="<?php echo $emp->id; ?>">
        <button type="button" href="#updateEmp" onclick="getSummary(36)" class="btn btn-info btn-xs" data-toggle="modal"><i class='fas fa-edit'></i></button>
    </form>
</td>

<div class="modal fade" id="updateEmp" tabindex="-1" role="dialog" aria-labelledby="updateEmp" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content" id="modal-content">
           <form action="" id="emp-create" class="form-horizontal">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                    <h4 class="modal-title" id="myModalLabel">Update Employee</h4>
                </div>
                <div class="modal-body" id="modal-body">                                   
                    <div class="form-group">
                        <label for="emp_name" class="col-sm-4 control-label">Name : </label>
                        <div class="col-md-8">
                            <input type="text" id="emp_name" name="emp_name" class="form-control" placeholder="Name" />
                        </div>
                    </div>
                     <div class="form-group">
                        <label for="salary" class="col-sm-4 control-label">Salary: </label>
                        <div class="col-md-8">
                            <input type="text" id="salary" name="salary" class="form-control" placeholder="Salary" />
                        </div>
                    </div>

                </div>
                <div class="modal-footer">

                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                    <button type="submit" value="submit" class="btn btn-primary submit" id="submit">Update</button>
                </div>
            </form>
        </div>
    </div>
</div>

这是我的控制器:

public function editEmp() {
    if ($this->input->post('emp_id')) {
        $id = $this->input->post('emp_id');
        $data['empName'] = $this->Emp_model->getEmpName($id);
        $this->load->view('template/header');
        $this->load->view("employee/createemployee", $data);
        $this->load->view('template/footer');
    } 
}

这是我的模型:

function getEmpName($id) {
    $this->db->select('*');
    $this->db->from('employees');
    $this->db->where('id', $id);

    if ($query = $this->db->get()) {
        return $query->result_array();
    } else {
        return false;
    }
}

有人能帮我怎么做吗?

x33g5p2x

x33g5p2x1#

希望这能帮助您:
你的模型方法 getEmpName 方法如下:

function getEmpName($id) {
    $this->db->select('*');
    $this->db->from('employees');
    $this->db->where('id', $id);
    if ($query->num_rows() > 0 ) {
        return $this->db->get()->row();
    } else {
        return false;
    }
}

你的mdoel html 应该是这样的:

<div class="modal fade" id="updateEmp" tabindex="-1" role="dialog" aria-labelledby="updateEmp" aria-hidden="true">
        <div class="modal-dialog">
        <div class="modal-content" id="modal-content">
       <form action="" id="emp-update-form" class="form-horizontal">
        <input type="hidden" name="emp_id" value="<?=$empName->id;?>">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title" id="myModalLabel">Update Employee</h4>
            </div>
            <div class="modal-body" id="modal-body">                                   
                <div class="form-group">
                    <label for="emp_name" class="col-sm-4 control-label">Name : </label>
                    <div class="col-md-8">
                        <input type="text" id="emp_name" name="emp_name" class="form-control" placeholder="Name" value="<?=$empName->emp_name;?>" />
                    </div>
                </div>
                 <div class="form-group">
                    <label for="salary" class="col-sm-4 control-label">Salary: </label>
                    <div class="col-md-8">
                        <input type="text" id="salary" name="salary" class="form-control" placeholder="Salary" value="<?=$empName->salary;?>" />
                    </div>
                </div>

            </div>
            <div class="modal-footer">

                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="submit" value="submit" class="btn btn-primary submit" id="submit">Update</button>
            </div>
        </form>
    </div>
</div>
</div>

替换 Controller_name 在ajax中使用您的控制器名称 url ```
$(function() {
$('#emp-update-form').on('submit',function(e){
var formdata = $(this).serialize();
alert('submit is working');
$.ajax({
type: "POST",
url: "",
dataType: 'json',
data: formdata,
success: function(res) {
if (res)
{
alert(res.status);
}
},
});
e.preventDefault();
});
});

您的控制器方法 `getEmployeeDetails` 应该是这样的:

public function getEmployeeDetails()
{
//print_r($this->input->post());
$response['status'] = 'success';
echo json_encode($response);
exit;
}

bvpmtnay

bvpmtnay2#

您可以在提交模式弹出窗体时尝试ajax

$("#emp-create").on("submit",function(){
    var emp_data = $(this).serialize();
    $.ajax({
        url: 'your controller url to update the popup details',
        data: emp_data,
        type: 'POST',
        success: function(){}
    });
});

相关问题