簡體   English   中英

無法從JSON響應轉換的Javascript對象獲取值?

[英]Cannot get the value from Javascript object converted from json response?

我不知道如何解決它。 即使我收到並通過警報顯示的響應,我得到的值也始終是“不確定的”。這是我的ajax代碼和從結果中收集的兩張圖片。 一個當我顯示json響應時,另一個當我顯示json屬性時


什么時候

 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('Ym-d', strtotime(Input::get('birth'))); $teacher - > certificate = (Input::get('certificate')); $teacher - > beginning_time = date('Ym-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.stringify(data)因為您的數據已經在json string您只需要parse它即可。

改變這個

var json_data = JSON.parse(JSON.stringify(data));

var json_data = JSON.parse(data); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM