我想在CodeIgniter中使用ajax更新图像。 它给出了一个错误,即未知索引"员工图片"。这是从中选择映像进行更新的窗体。
<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>
这就是阿贾克斯代码。
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]);
}
}
});
这是数据更新到数据库的函数。 现在这里它在"员工图片"上给出一个错误。
<?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
由于您获得的员工图片很好,因此我假设您的问题是当您不上传图片时,因为您不检查它是否存在。以这种方式重新排列代码。
$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;
}