# 筆記PHP_工作水坑_20201127日更新_很重要要時常看 ----- ###### tags: `工作` `PHP` `Ajax` `javascript` `jQuery` 文章內成就皆不來自於我 ---- ### 問題1 前後傳static用(string)0, -1判斷 ### 問題2 任何出現給使用看的訊息 ### 問題3 使用者體驗 ### 問題4 不論是誰寫的code只要出問題就是找負責專案的人 ### 問題5 要如何測試 ### 問題6 備份專案 ### 問題7 思考邏輯 ---- 今天工作上落入了一個很糟的狀況 自以為問題很簡單,隨便測試過後就放上線了 網站就這樣開放,但所有人都看到了錯誤的程式碼 # 問題1 平常用的Ajax方法 ```javascript= $ .ajax({ url:'..url', method:'POST', data:Data = {'name':'joker'} dateType:'json'success success: function(resp){ //成功 }, error: function(){ // 失敗 } }) ``` data 那邊為 obj轉 JSON.stringify(JSON字串) 使用dateType: 'json' 回來的資料不用需要使用 JSON.parse 轉成Jason物件 ``` dateType: 'json' //回來的資料不需要 JSON.parse ``` 後端寫法php ``` $ obj = json_decode($ data); $name = $obj->name; // 調用資料 ``` 返回json_encode(array('name'=> $ name)); 回傳資料形式 ``` {'name':'joker'} ``` 前後端的資料都是以**字串**來傳輸 **只是回到前端時會資料被 jQ自動轉回成物件,所以前端在接資料時就有可能會出現 "問題"** [JSON.parse()](https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse) ***以下分成*一般寫法*跟*公司寫法* 非正常寫法*** ajaxc回傳成功後 ```javascript= // resp是json物件 success:function(resp){ // 取json物件中的訊息 var msg = result.mes; // 訊息中找特定字串 msg = msg.replace(/#BR/g, "\r\n"); // 出訊息 alert(msg); // 判斷成功失敗 if(result.status === 'true') { window.location.reload(); } }, ``` ```php= array('mes' => urldecode('登記成功,感謝您的登記。#BR抽PS5購買資格公告,請於12/04 09:00 至家樂福官網查詢'), 'status' => $status); ```