[問題] AJAX 傳值疑問

看板Ajax作者 (Cian)時間11年前 (2014/09/11 18:27), 編輯推噓6(6020)
留言26則, 3人參與, 最新討論串1/1
小弟有一個form要同時上傳資料與圖片並且製作一張縮圖 原本沒有用AJAX方式很簡單,但現在想改用AJAX回傳結果 卻遇到了一個問題,而我Google也不知道該怎麼搜尋,請各位指導一下 看我哪邊出了錯誤 目前PHP回傳的錯誤是找不到 file 我想問題出在我的Javascript最後一行傳值部分,請問該怎麼改呢 function uploadFile(){ var file = _("file1").files[0]; var bookname = _("bookname").value; var isbn = _("isbn").value; var version = _("version").value; var author = _("author").value; var translator = _("translator").value; var press = _("press").value; var oprice = _("oprice").value; var nprice = _("nprice").value; var status = _("sttt").value; var school = _("school").value; var language = _("lag").value; var introduction = _("introduction").value; var ps = _("ps").value; var formdata = new FormData(); formdata.append("file1", file); var ajax = new XMLHttpRequest(); ajax.upload.addEventListener("progress", progressHandler, false); ajax.addEventListener("load", completeHandler, false); ajax.addEventListener("error", errorHandler, false); ajax.addEventListener("abort", abortHandler, false); ajax.open("POST", "bookupload_query.php"); ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); ajax.send(formdata+"&bookname="+bookname+"&isbn="+isbn+"&version="+version+"&author="+author+"&translator="+translator+"&press="+press+"&oprice="+oprice+"&nprice="+nprice+"&status="+status+"&school="+school+"&language="+language+"&introduction="+introduction+"&ps="+ps); } 另外一問 小弟剛畢業,目前網頁都靠自己買書看或是上網查資料 手上的書籍有JavaScript大全,但可能功力還太淺這本書我覺得好難消化 請問有大大覺得哪一本書不錯,或是哪個網站不錯可以推薦一下嗎? 弟一次上PTT發文,排文可能較亂辛苦大家觀看了.. :wq -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.170.40.81 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1410431222.A.060.html

09/11 19:34, , 1F
為什麼formdata後面會用+的呢O_o...?
09/11 19:34, 1F

09/11 22:48, , 2F
回h大,小弟就是搞不清楚這個formdata要怎麼傳,小
09/11 22:48, 2F

09/11 22:48, , 3F
弟一直測試失敗...
09/11 22:48, 3F

09/12 09:19, , 4F
_(...)這是哪來的library啊? 貼code也說清楚
09/12 09:19, 4F

09/12 09:24, , 5F
用FormData的話應該是在new FormData時就把整個form
09/12 09:24, 5F

09/12 09:25, , 6F
element填進去當參數 最後xhr.send時把new出來的Form
09/12 09:25, 6F

09/12 09:25, , 7F
Data實例填進去就可以了?
09/12 09:25, 7F

09/12 09:27, , 8F
然後好像不是所有瀏覽器都支援用FormData上傳檔案?
09/12 09:27, 8F

09/12 09:47, , 9F
書的部份 你目前的問題應該是原生api跟dom操作不熟
09/12 09:47, 9F

09/12 09:47, , 10F
推薦先把jQuery學起來 書跟網路教學都很多
09/12 09:47, 10F

09/12 09:48, , 11F
想繼續進修就看Javascript優良部份跟Javascript設計模
09/12 09:48, 11F

09/12 09:48, , 12F
式 都歐萊禮的
09/12 09:48, 12F

09/12 09:48, , 13F
Javascript大全這種書我覺得是最不需要的 XD
09/12 09:48, 13F

09/12 09:49, , 14F
Google是你的好朋友 寫好程式的重點在觀念
09/12 09:49, 14F

09/12 09:50, , 15F
以你需要的功能來看 用上jQuery再套個file upload plu
09/12 09:50, 15F

09/12 09:51, , 16F
gin大概幾行程式就解決了 要寫前段就要善用工具
09/12 09:51, 16F

09/12 10:36, , 17F
補上 _()是 function _(e1){return document.getElem
09/12 10:36, 17F

09/12 10:38, , 18F
entById(e1); }
09/12 10:38, 18F

09/12 10:39, , 19F
感謝m大的回應,但你說的處理方式小弟還是不太清楚
09/12 10:39, 19F

09/12 10:40, , 20F
小弟先研究研究jQuey file upload 好了,感謝您
09/12 10:40, 20F

09/12 11:35, , 21F
還是表單資料跟檔案本來用ajax就不能同時傳呢?
09/12 11:35, 21F

09/12 11:58, , 22F
javascript因為安全性問題是不會允許你直接讀使用者電
09/12 11:58, 22F

09/12 11:59, , 23F
腦上的檔案的 要直接ajax傳就只能傳文字訊息而已
09/12 11:59, 23F

09/12 12:00, , 24F
所以要傳檔案就得用其他方式 其實現在比較通用又跨平
09/12 12:00, 24F

09/12 12:00, , 25F
臺的ajax upload好像還是靠flash? 當然好的lib會幫你
09/12 12:00, 25F

09/12 12:01, , 26F
偵測使用者瀏覽器支援哪些方法然後幫你用最好的
09/12 12:01, 26F
文章代碼(AID): #1K4NZs1W (Ajax)
文章代碼(AID): #1K4NZs1W (Ajax)