0

ネストされたフォームがうまく機能する状況がありますが、明らかにネストされたフォームは実際には許可されていません。

次の例を見てください。

<form method="post" action="bid.php">
   <input type="hidden" value="11111111" name="auction_id">
   <input type="hidden" value="bid_confirm" name="action">                
    <!-- Holder Ends -->
    <div class="holder2">
        <div class="text">
            Quantity:
        </div>
        <div class="field">
            <input type="text" maxlength="6" value="1" class="small" name="quantity">
        </div>
        <!-- Btn Ends -->                                                    
        <div class="contentClear"></div>
    </div>
    <!-- Holder Ends -->                                                             
    <div class="holder holder3">                                                        
        <div class="field">
            <input type="text" maxlength="15" name="max_bid">
        </div>
        <div class="btn">
            <input type="image" src="images/pixel.gif" class="bid" name="submit">
        </div>
        <!-- Btn Ends -->
        <form method="post" action="make_offer.php?auction_id=11111111">  
            <div class="btn btn_offer">
                <input type="image" src="images/pixel.gif" class="offer" name="submit">
            </div>
            <!-- Btn Ends -->
        </form>                                    
        <div class="contentClear"></div>
    </div>
    <!-- Holder Ends -->            
</form>   

上記から、ネストが理想的な場所がわかります。

技術的には、すべての必須フィールドが出力されているため、他のフォームが開始する前に最初のフォームを閉じることができましたがauction_id,action,quantity,max_bid、フォームがコードのさまざまなセクションで開いて終了するため、コードが乱雑に見え始めるため、これを避けたかったのです。あまり理想的ではありません。

Javascriptに頼らずにこの状況を処理する方法について誰か考えがありますか?

4

1 に答える 1

1

2 番目のフォーム (オファーを作成するため) をAJAX、フォームを送信せずにデータを適切に送信するコンポーネントにすることができます。javascriptIMOこれが最善のアプローチですが、 (何らかの理由で)元に戻したくありませんでした。

機能する別のオプションは、フォームiFrameにページのを挿入する代わりです。このページには 2 番目のフォームがあり、送信されます。これに関する問題は、auctionID を iFrame に渡す方法を見つける必要があることです。しかし、URL パラメーターを使用してこれを行うことができれば、それほど悪くはありません。

それは私が思うにこのように見えるでしょう:

    <!-- Btn Ends -->
    <iframe src="pagewithform2.php?auction_id=1111111" width="xx" height="xx" scrolling="no"/>                                  
    <div class="contentClear"></div>
于 2013-01-10T18:55:17.573 に答える