2012-11-28 15 views
3

我有一個表格,這樣一個帶有輸入的問題列表後面跟着一個邀請,如果他們有文件上傳的話。在較大的表單中上傳文件(一頁上有兩種表單),我如何一次提交兩組數據(文件和表單)? (PHP)

我已經通過彈出包含上載的表單來避免嵌套表單。難點在於,如果他們按上傳器表單提交,則會在目標頁面上處理上傳,同樣,如果他們在表單的其餘部分上提交了上傳內容,則不會提交上傳內容。

我該怎麼做,一次?

我的代碼:

<form id="questions" action="page2.php" method="POST"> 
    Question 1 <input name="q1"/> 
    Question 2 <input name="q2" /> 
    Have any files to add? <button id="upload-button">Upload</button> 
    <input type="submit" value="Submit Answers" /> 
</form> 


<div class="hidden"> 
    <form id="fileupload" enctype="multipart/form-data" action="uploader.php" method="POST"> 
     <input id="fileupload" type="file" name="files[]" multiple> 
     <input type="submit" value="Upload Files" /> 
    </form> 
</div> 

jQuery將如果有人按下按鈕添加文件彈出隱藏的股利。

我沒有問題,他們被張貼到同一個地方,但我嘗試使用JavaScript來使用每個按鈕的點擊事件提交兩種形式,它沒有奏效。 (後面的讀取堆棧溢出解釋說只有最後一次提交以這種方式得到處理)

任何想法?謝謝

+0

爲什麼不把''標籤放在同一個表格中?如果選擇了一個文件,它將被上傳,否則它將是空的。 –

回答

3

很簡單,像這樣構造你的HTML,並且一次性處理來自page2.php和uploader.php的邏輯(即包括page2.php中的文件上傳邏輯)。如果你向我們展示這兩個文件的內容,我可以告訴你如何將它們結合起來。

還添加了帶有指向關聯輸入鏈接的標籤,並交換了按鈕元素的提交輸入。

<form id="questions" enctype="multipart/form-data" action="page2.php" method="POST"> 
    <label for="q1">Question 1</label> 
    <input id="q1" name="q1" type="text" /> 

    <label for="q2">Question 2</label> 
    <input id="q2" name="q2" type="text" /> 

    <label for="fileupload">Upload a File<label> 
    <input id="fileupload" type="file" name="files[]" multiple /> 

    <button type="submit">Submit</button> 
</div> 
+0

當然!謝謝你,很棒的解決方案 – Gideon

+0

不客氣! :)一個複選標記怎麼樣? ;) –

+0

當然:)我剛剛走出來,你回答得太快,我無法接受:)家現在,並已實施您的解決方案,再次感謝。 – Gideon