作者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/cn.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