2015-04-27 76 views
3

是否有另一種發送表單數據的方式,我可以使用我正在使用的腳本,我嘗試追加表單數據,但我無法弄清楚如何獲得配對值在發佈數據中,所以我在網址中添加了數據,問題是進度條和數據然後停止在我的頁面上工作。如何在ajax中發送額外的表單數據

<script> 
function _(el){ 
    return document.getElementById(el); 
} 
function uploadFile(){ 
    var file = _("video").files[0]; 
    var vidName = $("#vidName").val(); 
    var videoDescription = $("#videoDescription").val(); 
    var albumName1 = $("#choosevidCat").val(); 
    var vidFile =$("#video").val(); 
    var otherData = $('vidUpload').serializeArray() 
//  alert(file.name+" | "+file.size+" | "+file.type); 
    var formdata = new FormData(); 
    formdata.append("video", file); 
// formdata.append("video", vidName); 
    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", "includes/vid_upload.inc.php?vidName=" +vidName+"&videoDescription=" +videoDescription+"&albumName1=" 
    +albumName1, false); 
    ajax.send(formdata); 
} 
function progressHandler(event){ 
    _("loaded_n_total").innerHTML = "Uploaded "+event.loaded+" bytes of "+event.total; 
    var percent = (event.loaded/event.total) * 100; 
    _("progressBar").value = Math.round(percent); 
    _("status").innerHTML = Math.round(percent)+"% uploaded... please wait"; 
} 
function completeHandler(event){ 
    _("status").innerHTML = event.target.responseText; 
    _("progressBar").value = 0; 
} 
function errorHandler(event){ 
    _("status").innerHTML = "Upload Failed"; 
} 
function abortHandler(event){ 
    _("status").innerHTML = "Upload Aborted"; 
} 
</script> 

我嘗試添加

formdata.append("video", vidName); 

,你可以看到我已經在腳本註釋出來作爲Web控制檯顯示,雖然它被髮送vidName變量它沒有有一個這樣的標識標籤:內容 - 配置:表單數據; NAME =「視頻」

測試OGG創建2

任何人都可以幫助請

+0

您能得到什麼,如果你' console.log(FormData.getAll)' –

+0

@Said Kholov林不知道我把它添加在正確的地方,我把它放在結束腳本標記之前,它報告回來是未定義的,並與該位代碼 – Tiny

+0

把它追加後,並嘗試上傳 –

回答

3
ajax.send("video=" + vidName + "&other=" + other_value); 
如果要發送 您可以使用關鍵字「&」,以獨立的名稱和值削減

許多值

像 視頻= vidName, 其它= othervalue1, 其它2 = otherevalue2

將其發送到POST請求做

"video=vidname&other=othervalue1&other2=othervalue2" 

,並在PHP中,你可以得到這些職位數據

$_POST['video']; 
$_POST['other']; 
$_POST['other2']; 

這裏是一個鏈接 Sending POST data with a XMLHttpRequest

+0

我剛剛嘗試過,但它停止文件im從attatching上傳到上傳功能 – Tiny

+0

@ Oli Soproni B. 5分鐘前_正在定義腳本中第一個函數的使用,它不必重複輸入「$」字符,也不會創建錯誤 – Tiny

+1

我已經解決了它,通過使用ajax.open,添加表單數據與您在ajax.send中說的方式非常相似,但刪除false現在允許我發送數據並讓我的進度條工作 – Tiny

相關問題