4

入力のある質問のリストの後に、ファイルがある場合はアップロードへの招待が続くようなフォームがあります。

アップロードを含むフォームをポップアップすることで、フォームのネストを回避しました。問題は、アップローダー フォームで送信を押すと、アップロード先のページでアップロードが処理され、同様に、フォームの残りの部分で送信を押してもアップロードが送信されないことです。

両方を一度に行うにはどうすればよいですか?

私のコード:

<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 は非表示の div をポップアップ表示します。

それらが同じ場所に投稿されても問題はありませんが、javascript を使用して各ボタンのクリック イベントを使用して両方のフォームを送信しようとしましたが、うまくいきませんでした。(読み取りスタック オーバーフローは、最後の送信のみがこの方法で処理されることを後で説明しました)

何か案は?ありがとう

4

1 に答える 1

4

簡単に言えば、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>
于 2012-11-28T02:15:37.817 に答える