作者awa6811 (希望永存)
看板Ajax
標題[討論] 設計上遇到的程序問題
時間Thu Oct 23 09:01:00 2014
大家好
一般我們在設計表單欄位填寫是否符合條件需求多會在,clinet端做判斷再放行上傳到DB;
今天我們就先~擱著~為何多會在clinet判斷完才上傳的觀念:
因為我現在的情況是會把所有表單的資訊一併傳到 web做判斷是否符合條件,才放行到
process 程序。
[填表]C -> [check]W -> [process]W C:clinet W:web
填表完畢 會透過 XHR(ajax) check.php 去做欄位條件判斷,有問題就會傳值回來並透過
alert顯示出來,若判斷正確沒問題就會運行到另一個 XHR(ajax) process.php,去做上
傳數據的處理。
現在問題來了,過去單純傳遞字串;因為當時的 XHR 沒有上傳檔案的api支持,所以整體
上運作不會帶有上傳檔案的程序(檔案基本上是與純文字岔開運作),但是現在 XHR2 支持
了上傳檔案的api,多數人應該都會感到興奮便利,過去 XHR 再傳檔案運程上會是一種
困難點,而在 XHR2 下的 FormData 變得非常便利;但是每次執行便會作上傳的動作,
因為我設計的程序會跑兩次 XHR2 所以變成會運行兩次上傳檔案的動作,有辦法不再改變
現有的程序讓他只在完成第一次欄位判斷後,才作上傳的置能嗎?
--
===================================
讓生命充滿活力,讓不如意就此消熄!
讓慈悲充滿人間,讓感恩長駐心底!!
===================================
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.37.232
※ 文章網址: http://webptt.com/m.aspx?n=bbs/Ajax/M.1414026065.A.6A0.html
1F:推 mrbigmouth: 就第一次檢查時不要塞檔案上傳就好了啊? 10/23 09:21
2F:→ mrbigmouth: 你是靠什麼環境自動檢查的嗎? 不然基本上不改程式碼 10/23 09:21
3F:→ mrbigmouth: 而改變功能是不可能的事 10/23 09:22
4F:→ awa6811: 但是我昨天試過,試著把塞檔案的那欄位給空值,但是不行 10/23 09:42
5F:→ awa6811: 它還是會把我選的檔案上傳完畢才作欄位的判斷 10/23 09:42
6F:→ awa6811: 程式碼當然是可以被修改的,若不想破壞現有的執行模式下 10/23 09:43
7F:→ awa6811: 的化可行嗎? 10/23 09:44
8F:→ awa6811: 我只是很簡單的檢查方式,欄位POST到web,web取值再用php 10/23 09:45
9F:→ awa6811: 寫好的判斷函數來作欄位判斷 10/23 09:46
10F:推 mrbigmouth: 你直接把程式碼貼出來吧 你的程式只要不把檔案塞進fr 10/23 10:21
11F:→ mrbigmouth: 不塞進form data xhr就不會上傳檔案這是肯定的 10/23 10:22
12F:→ awa6811: 那樣子看來 check 的部分就必須用 xhr 純文字的方式了 10/23 10:26
13F:推 mrbigmouth: 的確 如果你check不用上傳檔案 為何要用formdata? 10/23 11:27
14F:推 mrbigmouth: 就算用form data你也不需要把整個form塞進裡面....... 10/23 11:37
15F:→ mrbigmouth: fileupload button基本上是不會讓你控制的 你所謂的 10/23 11:38
16F:→ mrbigmouth: 把那欄位塞空值應該是無效的舉動 10/23 11:38
17F:→ mrbigmouth: 你要做的是不把該檔案欄位塞進form data裡面 不是去 10/23 11:39
18F:→ mrbigmouth: 操作裡面的值 10/23 11:39