如何在Codeigniter中使用Ajax更新数据库中的图像?

时间:2018-09-27 07:12:51

标签: php ajax codeigniter

我想在CodeIgniter中使用Ajax更新图像。它给出了一个未知索引“ employeePicture”的错误。这是从中选择要进行更新的图像的形式。

<form method="post" enctype="multipart/form-data" id="updateData">
<div class="col-md-3">
    <div class="form-group">
        <label for="EditcontactNoSelector">Employee Picture</label>
        <input type="file" name="employeePicture" id="Editemployee_picture">
    </div>
</div>

这就是Ajax代码。

  var formData = new FormData($("#updateData")[0]);
$.ajax({
    url: "'.base_url().'Employees/master_update_employees",
    type: "post",
    data: formData,
    async: false,
    cache: false,
    contentType: false,
    processData: false,
    success: function(output) {
        var data = output.split("::");
        if (data[0] === "OK") {
            Shafiq.notification(data[1], data[2]);
            oTable.fnDraw();
            $("#employeePicture").val("");


        } else if (data[0] === "FAIL") {
            Shafiq.notification(data[1], data[2]);
        }
    }
});

这是将数据更新到数据库的功能。现在,这里给出了“ employeePicture”错误。

<?php
public

function master_update_employees()
    {
    if ($this->input->post())
        { //If Any Values Posted
        if ($this->input->is_ajax_request())
            { //If Request Generated From Ajax

            // Getting Posted Values

            $employee_picture = $_FILES['employeePicture']['name'];
            $path = 'assets/employee_profile/' . $employee_picture;
            move_uploaded_file($_FILES["employeePicture"]["tmp_name"], $path);
            $Name = $this->input->post('Name');
            $Contact = $this->input->post('Contact');
            $Mobile = $this->input->post('EditMobile');
            $EditCNIC = $this->input->post('EditCNIC');
            $FatherName = $this->input->post('FatherName');
            $ID = $this->input->post('ID');
            $Address = $this->input->post('Address');
            $designation = $this->input->post('EditDesignation');
            $shift = $this->input->post('EditShift');
            $joinDate = $this->input->post('EditJoiningDate');
            $basicSalary = $this->input->post('EditBasicSalary');
            $PermanentAddress = $this->input->post('EditPermanentAddress');
            $IsEnabled = $this->input->post('Enabled');
            $Enabled = 1;
            if ($IsEnabled == "true")
                {
                $Enabled = 1;
                }
            elseif ($IsEnabled == "false")
                {
                $Enabled = 0;
                }

            $table = "employees";
            $updateData = array(
                'Name' => $Name,
                'Father_Name' => $FatherName,
                'Phone' => $Contact,
                'Mobile' => $Mobile,
                'Designation' => $designation,
                'shift' => $shift,
                'JoinDate' => $joinDate,
                'BasicSalary' => $basicSalary,
                'CNIC' => $EditCNIC,
                'Pres_Address' => $Address,
                'Picture' => $path,
                'Perm_Address' => $PermanentAddress,
                'IsEnabled' => $Enabled
            );
            $updateWhere = array(
                'id' => $ID
            );
            $result = $this->Common_model->update($table, $updateWhere, $updateData);
            if ($result === true)
                {
                echo "OK::Record Successfully Updated::success";
                return;
                }
              else
                {
                if ($result['code'] === 0)
                    {
                    echo "FAIL::Record is Same in Database, No Change Occurred::warning";
                    }
                  else
                    {
                    echo "FAIL::";
                    print_r($result);
                    echo "::error";
                    }

                return;
                }
            }
        }
    } // update Employee

1 个答案:

答案 0 :(得分:0)

由于您可以很好地拍摄员工照片,所以我认为您的问题是当您不上传照片时不检查它是否存在。以这种方式重新排列代码。

$updateData = array(
                    'Name' => $Name,
                    'Father_Name' => $FatherName,
                    'Phone' => $Contact,
                    'Mobile' => $Mobile,
                    'Designation'=>$designation,
                    'shift'=>$shift,
                    'JoinDate'=>$joinDate,
                    'BasicSalary'=>$basicSalary,
                    'CNIC' => $EditCNIC,
                    'Pres_Address' => $Address,
                    //'Picture' => $path,
                    'Perm_Address' => $PermanentAddress,
                    'IsEnabled' => $Enabled
                );

if (isset($_FILES['employeePicture'])) {
    $employee_picture=$_FILES['employeePicture']['name'];
    $path='assets/employee_profile/'.$employee_picture;
    move_uploaded_file($_FILES["employeePicture"]["tmp_name"], $path);
    $updateData['Picture'] = $path;
}