我不知道如何解決它。我得到的價值總是「未定義」,即使我得到的迴應和我通過alert展示這裏是我的ajax代碼和兩張圖片,我從我的結果中收集。一個當我告訴JSON響應和另一個當我告訴json的財產 無法從json響應中轉換Javascript對象的值?
時
alert(json_data).
時
alert(json_data.status)
Ajax代碼:
$("#input-form").submit(function(e) {
var test = checkFile();
var file_data = $('#imgInpbanner').prop('files')[0];
var form_data = new FormData();
if (test == true) {
form_data.append('avatar', file_data);
}
form_data.append('_token', $('#_token').val());
form_data.append('experient_period', $("#experient-period").val());
form_data.append('married', $("#married").val());
form_data.append('acc_id', <?php echo $teacher->acc_id; ?>);
form_data.append('official_staff', $("#official_staff").val());
form_data.append('certificate', $("#certificate").val());
form_data.append('birth', $("#birth").val());
form_data.append('beginning_date', $("#beginning-date").val());
form_data.append('gender', $("#gender").val());
form_data.append('user_name', $("#user_name").val());
form_data.append('email', $("#email").val());
form_data.append('password', $("#password").val());
form_data.append('first_name', $("#first_name").val());
form_data.append('last_name', $("#last_name").val());
form_data.append('phone_number', $("#phone_number").val());
form_data.append('address', $("#address").val());
form_data.append('colleague', $("#colleague").val());
var formURL = $(this).attr("action");
$.ajax({
url: formURL,
dataType: 'text', // what to expect back from the PHP script, if anything
cache: false,
contentType: false,
processData: false,
type: "POST",
data: form_data,
success: function(data, textStatus, jqXHR) {
//data: return data from server
var json_data = JSON.parse(JSON.stringify(data));
alert(json_data.status);
if (json_data.status == 200) {
$('#modal-header').css('background-color', '#00c0ef');
$('#result_inform').text(json_data.message);
$('#modaltest').trigger("click");
} else {
$('#modal-header').css('background-color', '#d33724');
$('#result_inform').text(json_data.message);
$('#modaltest').trigger("click");
}
},
error: function(jqXHR, textStatus, errorThrown) {
//if fails
$('#modal-header').css('background-color', '#d33724');
$('#result_inform').text("Có lỗi xảy ra");
$('#modaltest').trigger("click");
}
});
e.preventDefault(); //STOP default action
e.unbind(); //unbind. to stop multiple form submit.
});
PHP控制器
$isOldPw = strcmp(Input::get('password'), '');
$acc_id = Input::get('acc_id');
try {
$teacher = Teachers::findOrFail($acc_id);
$user = Users::findOrFail($acc_id);
$isOldEmail = strcmp(Input::get('email'), $user - > email);
$isOldUrNm = strcmp(Input::get('user_name'), $user - > user_name);
$rules = array(
'first_name' => 'required|max:10',
'last_name' => 'required|max:30',
'address' => 'required|max:100',
'phone_number' => 'required|max:15|regex:/(0)[0-9]{9}/',
'user_name' => 'required|min:5|unique:user',
'email' => 'required|email|unique:user',
'password' => 'required|min:6'
);
if ($isOldPw == 0) array_splice($rules, 6, 1);
if ($isOldEmail == 0) array_splice($rules, 5, 1);
if ($isOldUrNm == 0) array_splice($rules, 4, 1);
$validator = Validator::make(Input::all(), $rules);
if ($validator - > fails()) {
$messages = $validator - > messages();
return response() - > json(['status' => 400, 'message' => $messages - > toJson()]);
} else {
$user - > user_name = Input::get('user_name');
$user - > first_name = Input::get('first_name');
$user - > last_name = Input::get('last_name');
$user - > email = Input::get('email');
$user - > address = Input::get('address');
$user - > phone_number = Input::get('phone_number');
if ($isOldPw != 0)
$user - > password = Hash::make(Input::get('password'));
$user - > gender = (Input::get('gender'));
$user - > birth = date('Y-m-d', strtotime(Input::get('birth')));
$teacher - > certificate = (Input::get('certificate'));
$teacher - > beginning_time = date('Y-m-d', strtotime(Input::get('beginning_date')));
$teacher - > colleague = (Input::get('colleague'));
$teacher - > official_staff = (Input::get('official_staff'));
$teacher - > married = (Input::get('married'));
$teacher - > experient_period = (Input::get('experient_period'));
if (Request::hasFile('avatar') && Input::file('avatar') - > isValid()) {
if (strlen($user - > image_url) > strlen(SysConst::get('DEFAULT_AVATAR_PATH')))
File::delete(public_path().$user - > image_url);
$img_path = SysConst::get('IMAGE_PATH_USERAVATAR');
$file = Input::file('avatar');
$image_name = time().
'-'.$file - > getClientOriginalName();
$file - > move(public_path().$img_path, $image_name);
$image_alter = Image::make(sprintf(public_path().$img_path.
'%s', $image_name)) - > resize(128, 128) - > save();
$image_url = $img_path.$image_name; // Note we add the image path to the databse field before the save.
$user - > image_url = $image_url;
} else {
$user - > image_url = SysConst::get('DEFAULT_AVATAR_PATH');
}
DB::beginTransaction();
$user - > save();
$teacher - > acc_id = $user - > id;
$teacher - > save();
DB::commit();
return response() - > json(['status' => 200, 'message' => 'Cập nhật thành công']);
}
} catch (\PDOException $ex) {
DB::rollBack();
return response() - > json([
"status" => 500,
"message" => $ex - > getMessage()
]);
} catch (\Exception $ex) {
return response() - > json(['status' => 400, 'message' => $ex - > getMessage()]);
}
任何錯誤,在瀏覽器** **開發工具控制檯?作爲一個猜測,'數據'不是一個有效的JSON字符串,所以'JSON.parse'失敗 –