MozTW 討論區

各項 Mozilla 相關軟體與技術討論
現在的時間是 2025-08-05, 18:30

所有顯示的時間為 UTC + 8 小時





發表新文章 回覆主題  [ 6 篇文章 ] 
發表人 內容
文章發表於 : 2007-09-17, 23:47 
離線
頭像

註冊時間: 2006-11-01, 15:18
文章: 132
一般在使用 XMLHttpRequest 做傳送資料時

setRequestHeader() 中 "Content-Type" 的設定通常是 "application/x-www-form-urlencoded"

這時 send() 中傳的參數只要是 "x=....&y=...." 格式就行

但是如果我現在要將一個 enctype="multipart/form-data" 的 form 設定成被 submit 時也用 XMLHttpRequest 傳

請問這時 send() 中的參數要怎麼搞定啊? 囧"

(尤其是該 form 中上傳的東西有檔案在內時)


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-09-18, 13:54 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
如果要像 <input type="file"> 一樣傳送檔案,XMLHttpRequest 並不能做到。
實際上如果要達成像 Ajax 一樣在背景上傳檔案,必須建立一個隱形的 iframe,把表單的所有 element 給 clone 到 iframe 內,再進行 submit 的動作。submit 完以後結果再從 iframe 拉回來。

不過...你有用任何 library 嗎?比如說 Prototype 或 jQuery...
(請告訴我你跳入 Ajax 大海之前有先選一個好的 library...不然下場會很痛苦滴...)
像 jQuery 有 forms plugin,Prototype 有 AJForm,兩者都可以 Ajax 化你的表單。

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-09-18, 15:48 
離線
頭像

註冊時間: 2006-11-01, 15:18
文章: 132
kourge 寫:
如果要像 <input type="file"> 一樣傳送檔案,XMLHttpRequest 並不能做到。
實際上如果要達成像 Ajax 一樣在背景上傳檔案,必須建立一個隱形的 iframe,把表單的所有 element 給 clone 到 iframe 內,再進行 submit 的動作。submit 完以後結果再從 iframe 拉回來。


嗯....那這樣怎麼得知 submit 完成呢?

(就是說相當於在 XMLHttpRequest 裡 ready state=4 的時候)

在那個 iframe 上面加上 onload 事件來偵測嗎?

kourge 寫:
不過...你有用任何 library 嗎?比如說 Prototype 或 jQuery...
(請告訴我你跳入 Ajax 大海之前有先選一個好的 library...不然下場會很痛苦滴...)
像 jQuery 有 forms plugin,Prototype 有 AJForm,兩者都可以 Ajax 化你的表單。


我目前是有試用過 Ext 跟 Prototype 的 Lib 啦....

不過現在我想先從基本開始用起

熟了之後再來用也不遲~XD



謝謝你的回答~ ^^a


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-09-18, 16:06 
離線
頭像

註冊時間: 2006-10-27, 07:29
文章: 1068
GlinX 寫:
我目前是有試用過 Ext 跟 Prototype 的 Lib 啦....

不過現在我想先從基本開始用起

熟了之後再來用也不遲~XD


做過這種事的我只能說....
你會被玩死....OTZ
IE真的是大魔王


回頂端
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-09-18, 20:12 
離線
頭像

註冊時間: 2006-11-01, 15:18
文章: 132
legnaleurc 寫:
GlinX 寫:
我目前是有試用過 Ext 跟 Prototype 的 Lib 啦....

不過現在我想先從基本開始用起

熟了之後再來用也不遲~XD


做過這種事的我只能說....
你會被玩死....OTZ
IE真的是大魔王


哈哈哈哈哈哈....的確....Orz

之前光是為了讓已寫好的一堆 JavaScript 檔相容於 IE

改了整整兩天...囧"



不過我覺得

這樣也算是一種學習吧

至少我可以學到 "X! 死 IE 臭 IE 又不支援這個寫法了!" XDD


回頂端
Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-TW; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
 個人資料  
引用回覆  
 文章主題 :
文章發表於 : 2007-09-22, 12:07 
離線
[網站管理員]
頭像

註冊時間: 2004-09-27, 09:24
文章: 1685
GlinX 寫:
嗯....那這樣怎麼得知 submit 完成呢?

(就是說相當於在 XMLHttpRequest 裡 ready state=4 的時候)

在那個 iframe 上面加上 onload 事件來偵測嗎?

首先,iframe 的 src 要設成:
代碼:
javascript:false;document.write("");

然後要用 onload 事件來偵測。

GlinX 寫:
legnaleurc 寫:
GlinX 寫:
我目前是有試用過 Ext 跟 Prototype 的 Lib 啦....

不過現在我想先從基本開始用起

熟了之後再來用也不遲~XD


做過這種事的我只能說....
你會被玩死....OTZ
IE真的是大魔王


哈哈哈哈哈哈....的確....Orz

之前光是為了讓已寫好的一堆 JavaScript 檔相容於 IE

改了整整兩天...囧"



不過我覺得

這樣也算是一種學習吧

至少我可以學到 "X! 死 IE 臭 IE 又不支援這個寫法了!" XDD

另外有一種更好、可以魚與熊掌兼得的方法:
每次在 IE 碰壁,就看看 Prototype / Ext / jQuery 有沒有解決辦法,這樣又可以快速解決問題,又可以快速「學習」,不然簡直是在活活浪費生命。靠 IE 浪費青春...太囧了。

_________________
korp + korp 中文站(沒精神更新)


回頂端
Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7
 個人資料  
引用回覆  
顯示文章 :  排序  
發表新文章 回覆主題  [ 6 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 2 位訪客


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
Powered by phpBB® Forum Software © phpBB Group
正體中文語系由 竹貓星球 維護製作
© moztw.org, Mozilla Foundation
MozTW,Mozilla 台灣社群