2012-12-23 77 views
0

我正在上傳文件,用戶在選擇文件後無需點擊按鈕「上傳」。它工作正常,但我也需要發送一個額外的參數,因爲我根本沒有進入Javascript,我無法弄清楚如何發送它。
的HTML:使用Javascript發送POST數據

<form enctype="multipart/form-data" target="_blank" name="send_img" id="send_img" method="post" action="img_upload.php"> 
    <input type="hidden" id="group_id" name="group_id" value="2" /> 
    <input type="file" class="hide" id="uploaded_file" name="uploaded_file" onChange="Handlechange();"/> 
    <button type="submit" id="btn">Subir fotos!</button> 
</form> 

<div onclick="HandleBrowseClick();" id="fakeBrowse" >Load a picture</div> 

腳本:

<script language="JavaScript" type="text/javascript"> 
function HandleBrowseClick() 
{ 
    var fileinput = document.getElementById("uploaded_file"); 
    fileinput.click(); 
} 

function Handlechange() 
{ 
    var fileinput = document.getElementById("uploaded_file"); 
    var textinput = document.getElementById("filename"); 
    textinput.value = fileinput.value; 
} 
</script> 

我不知道如何發送GROUP_ID變量(我有一個PHP變量,所以它可以在任何地方呼應,即使在劇本)。我嘗試了許多方法,但沒有運氣。那麼怎樣才能讓這個變量在img_upload.php中被傳遞? 我認爲:

var group_id = document.getElementById("group_id").value;

會來,但我錯了: -/

我也覺得有趣的是,如果我修改表單標籤action="img_upload.php?group_id=2",我不能得到的參數後來在做那個文件$_GET['group_id'];

在img_upload.php我採取這個其他變量,並將其插入到數據庫中。所以如果我能以這種方式獲得變量,我可以將它變成一個php變量(我試圖在最後一行儘可能清楚),這將非常酷。
我還要補充我在Chrome開發者工具得到:

Request Payload 
------WebKitFormBoundarydOdbB5IQ8RbA8CRR 
Content-Disposition: form-data; name="uploaded_file[]"; filename="photo-5.JPG" 
Content-Type: image/jpeg 


------WebKitFormBoundarydOdbB5IQ8RbA8CRR-- 

這就是讓我覺得這個問題是在數據發送腳本

+0

這兩種方法應該工作。請告訴我們您嘗試的確切代碼。在隱藏輸入中獲得'group_id'之前,您是否等待DOMready? – Bergi

+0

因爲它正在做它應該做的事情,所以我認爲這就是我需要的。你所看到的幾乎與我在文件中的一樣。這說...不,我沒有等待DOMready。我現在要開始工作了! – cbarg

回答

1

當你點擊「提交」所有輸入字段會使用HTTP POST提交給服務器。

在服務器上,你能解釋像(JAVA)

request.getAttribute('uploaded_file'); 

在PHP中的東西的要求,這將是這樣的:

$myFile = $_REQUEST['uploaded_file']; 

PHP manual

編輯:您輸入的標籤無效(去掉 「/」):

<input type="hidden" id="group_id" name="group_id" value="2"> 

EDIT2:

添加以下(作爲測試):

<script type="text/javascript"> 
var el = document.getElementById('send_img'); 

el.addEventListener('submit', function(){ 
alert(document.getElementById("group_id").value); 
return true; 
}, false); 
</script> 
+0

這是正確的,但我需要獲得變量到PHP,因此它可以很容易地插入到數據庫中。 (我正在添加那個細節) – cbarg

+0

我有那個部分。我只需要獲取變量group_id。感謝您花時間幫助我! – cbarg

+0

這將是$ myGroupId = $ _REQUEST ['group_id'];但我並沒有真正使用PHP的經驗。 – asgoth