同一页面上的GET表单和POST表单

时间:2012-10-24 17:08:55

标签: html forms post get

我有一个noobie问题让我的头脑如何能够完成这项工作。

我有一个页面列出了我的数据库中的产品。产品列表上方是一个GET表单,其中包含两个下拉菜单,用于选择每页产品数量和排序顺序。

然后在我的商家信息的左侧,我有一个包含POST表单的sidebox,其中包含特定类别中的所有子类别以及复选框,以便用户可以优化他们的搜索。

因为sidebox包含很多选项,所以最好把这个表单作为POST,否则我最终会得到包含10个category_ids的潜在url,但这意味着当我更新GET表单中的任何一个下拉列表时我需要发送POST的信息。

我尝试过只有一个大的POST表单覆盖两个位,但因为它们处于不同的状态,所以这不会验证。

这是最好的方式,我无法弄明白!

编辑:这是我尝试将所有元素放入一个POST表单的小提琴,它不会因为不同的div而验证,我无法将它们包装在一个DIV中,因为它会影响我的布局,即这意味着是侧箱右侧和过滤栏右侧的产品列表 - http://jsfiddle.net/FwQNn/

<div id="prodlistFilterBarWrapper">
        <form name="filter" action="index.php?main_page=index&amp;cPath=45" method="post">
            <input type="hidden" name="main_page" value="index" />
            <div id="filterbarwrapper"><span class="filterBarTextperpage">&nbsp;per-page&nbsp;</span>
                <div id="perpagecontainer">
                    <select name="perpage" id="perpage" onchange="this.form.submit()">
                        <option value="20">20</option>
                        <option value="40">40</option>
                        <option value="60">60</option>
                        <option value="80">80</option>
                        <option value="100">100</option>
                    </select>
                </div>
                <div id="sortordercontainer">
                    <select name="sortorder" id="sortorder" onchange="this.form.submit()">
                        <option value="bestselling">Best Selling</option>
                        <option value="pricelowhigh" selected="selected">Price low-high</option>
                        <option value="pricehighlow">Price high-low</option>
                        <option value="nameaz">Name a-z</option>
                        <option value="nameza">Name z-a</option>
                    </select>
                </div>
            </div>   
        </div>
        <div style="clear:both"></div>
        <div id="sidebox">
        <div id="sideboxheaderbgtop"><span class="yellowText" style="margin-left:15px">Refine</span> <span class="whiteText">search</span></div>
        <div id="sideboxPriceRange"></div>
        <div id="sideboxCatsWithCheckBoxes">
        <div class="sideboxHeading">Irish Gifts &amp; Souvenirs</div>
        <div class="sideboxDotSpacer"></div>
        <div class='sideboxSubCat'><input type="checkbox" name="subcats[]" value="20" checked="checked" />&nbsp;&nbsp;&nbsp;Decorations</div>
        <div class='sideboxSubCat'><input type="checkbox" name="subcats[]" value="48" checked="checked" />&nbsp;&nbsp;&nbsp;Keyrings</div>
        <div class='sideboxSubCat'><input type="checkbox" name="subcats[]" value="25" checked="checked" />&nbsp;&nbsp;&nbsp;Whiskey </div>
        <div class='sideboxSubCat'><input type="checkbox" name="subcats[]" value="15" checked="checked" />&nbsp;&nbsp;&nbsp;Novelties</div>
        <div class='sideboxSubCat'><input type="checkbox" name="subcats[]" value="44" checked="checked" />&nbsp;&nbsp;&nbsp;Titanic</div>
        <div class='sideboxSubCat'><input type="checkbox" name="subcats[]" value="18" checked="checked" />&nbsp;&nbsp;&nbsp;Glassware</div>
        <div class='sideboxSubCat'><input type="checkbox" name="subcats[]" value="43" checked="checked" />&nbsp;&nbsp;&nbsp;football</div>
        <div class='sideboxSubCat'><input type="checkbox" name="subcats[]" value="8" checked="checked" />&nbsp;&nbsp;&nbsp;Dolls</div>
        <input type="image" src="update.png" alt="Update" title=" Update " id="sideboxUpdateButton" />
        </form>
        <div class="sideboxBottomSpace"></div>
    </div>

1 个答案:

答案 0 :(得分:0)

我会做的是 1.如果必须传递左侧数据,请将下拉列表更改为帖子 2.在下拉列表中包含隐藏字段,当您从左侧选择不同的类别时,这些字段会被填充。这可以通过简单的javascript来轻松完成