作者mygirl30229 (Cian)
看板Ajax
標題[問題] AJAX 傳值疑問
時間Thu Sep 11 18:27:00 2014
小弟有一個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://webptt.com/m.aspx?n=bbs/Ajax/M.1410431222.A.060.html
1F:推 hit1205: 為什麼formdata後面會用+的呢O_o...? 09/11 19:34
2F:→ mygirl30229: 回h大,小弟就是搞不清楚這個formdata要怎麼傳,小 09/11 22:48
3F:→ mygirl30229: 弟一直測試失敗... 09/11 22:48
4F:推 mrbigmouth: _(...)這是哪來的library啊? 貼code也說清楚 09/12 09:19
5F:推 mrbigmouth: 用FormData的話應該是在new FormData時就把整個form 09/12 09:24
6F:→ mrbigmouth: element填進去當參數 最後xhr.send時把new出來的Form 09/12 09:25
7F:→ mrbigmouth: Data實例填進去就可以了? 09/12 09:25
8F:推 mrbigmouth: 然後好像不是所有瀏覽器都支援用FormData上傳檔案? 09/12 09:27
9F:推 mrbigmouth: 書的部份 你目前的問題應該是原生api跟dom操作不熟 09/12 09:47
10F:→ mrbigmouth: 推薦先把jQuery學起來 書跟網路教學都很多 09/12 09:47
11F:→ mrbigmouth: 想繼續進修就看Javascript優良部份跟Javascript設計模 09/12 09:48
12F:→ mrbigmouth: 式 都歐萊禮的 09/12 09:48
13F:→ mrbigmouth: Javascript大全這種書我覺得是最不需要的 XD 09/12 09:48
14F:→ mrbigmouth: Google是你的好朋友 寫好程式的重點在觀念 09/12 09:49
15F:→ mrbigmouth: 以你需要的功能來看 用上jQuery再套個file upload plu 09/12 09:50
16F:→ mrbigmouth: gin大概幾行程式就解決了 要寫前段就要善用工具 09/12 09:51
17F:→ mygirl30229: 補上 _()是 function _(e1){return document.getElem 09/12 10:36
18F:→ mygirl30229: entById(e1); } 09/12 10:38
19F:→ mygirl30229: 感謝m大的回應,但你說的處理方式小弟還是不太清楚 09/12 10:39
20F:→ mygirl30229: 小弟先研究研究jQuey file upload 好了,感謝您 09/12 10:40
21F:→ mygirl30229: 還是表單資料跟檔案本來用ajax就不能同時傳呢? 09/12 11:35
22F:推 mrbigmouth: javascript因為安全性問題是不會允許你直接讀使用者電 09/12 11:58
23F:→ mrbigmouth: 腦上的檔案的 要直接ajax傳就只能傳文字訊息而已 09/12 11:59
24F:→ mrbigmouth: 所以要傳檔案就得用其他方式 其實現在比較通用又跨平 09/12 12:00
25F:→ mrbigmouth: 臺的ajax upload好像還是靠flash? 當然好的lib會幫你 09/12 12:00
26F:→ mrbigmouth: 偵測使用者瀏覽器支援哪些方法然後幫你用最好的 09/12 12:01