删除当前_POST数据以将表单提交到新页面

时间:2012-11-28 18:56:02

标签: php forms post submit

我有一个表单,我希望使用_POST数据来提交复选框值。我的问题是我当前页面中已有帖子值。当我提交表单时,它会返回当前的帖子值而不是我想要的值,这会给我Notice: Undefined index消息。

基本上,此表单用于比较所选产品,但在当前帖子值中,它包含产品信息以及按值排序。有没有办法单独提交我的新表格的信息?

谢谢

修改

嗯,这是关于我的代码的事情,我正在使用名为Virtuemart的购物车。我已添加下面的代码减去所有其他不影响表单的东西。

产品文件

 // Code here for Template file for individual items in category
    //creating checkbox for comparison form
    echo "<input type =\"checkbox\" name=\"fruit[]\" value=\"".$product_sku."\" />
    <label for=\"".$product_name."\"> ".$product_name."</label>";

类别文件

//all other forms on this page 
<form action="items/index.php" method="get" name="results" target="_blank">
<input class="inputbox" name="search" id="item-search" type="text" value="Search"></td><td>
<input type="image" class="sub-button" src="/search.png" alt="submit" name="submit" value="search">
</form>


<form action="index.php" method="get" name="order">
Sort by:
<select class="inputbox" name="orderby" onchange="order.submit()">
<option value="product_list" >Select</option>
        <option value="product_name" selected="selected">Product Name</option>
        <option value="product_price" >Price</option>
        <option value="product_cdate" >Latest Products</option>
        </select>
<script type="text/javascript">//<![CDATA[
            document.write('&nbsp;<input type="hidden" name="DescOrderBy" value="ASC" /><a href="javascript: document.order.DescOrderBy.value=\'DESC\'; document.order.submit()"><img src="images/sort_asc.png" border="0" alt="Ascending order" title="Ascending order" width="12" height="12" /></a>');
            //]]></script>
<noscript>
        <select class="inputbox" name="DescOrderBy">
        <option  value="DESC">Descending order</option>
        <option selected="selected" value="ASC">Ascending order</option>
        </select>
        <input class="button" type="submit" value="Submit" />
    </noscript>
    <input type="hidden" name="Itemid" value="89" />
    <input type="hidden" name="option" value="com_virtuemart" />
    <input type="hidden" name="page" value="shop.browse" />
    <input type="hidden" name="category_id" value="0" />
    <input type="hidden" name="manufacturer_id" value="0" />
    <input type="hidden" name="keyword" value="" />
    <input type="hidden" name="keyword1" value="" />
    <input type="hidden" name="keyword2" value="" />

<div id='limitbox'> &nbsp;&nbsp;&nbsp;&nbsp;Display #&nbsp;&nbsp;

<select class="inputbox-reg" name="limit" size="1"  onchange="this.form.submit();">
<option value="6" >6</option>
<option value="18" >18</option>
<option value="30" >30</option>
</select>

<input type="hidden" name="limitstart" value="0" /></div>   <noscript><input type="submit" value="Submit" /></noscript> 
    <!-- PAGE NAVIGATION AT THE TOP <br/>
    <div style="text-align:center;">    </div>
    -->
</form>

// all other forms end

表单我想传递

中的值
echo"<form method=\"POST\" name=\"compare\" id=\"compare\" action=\"http://localhost/comparepage/\">";

//TEMPLATE FILE HERE THAT GENERATE PRODUCTS FROM PRODUCT FILE CODE ABOVE.
//Basically it has foreach statements to generate all products

echo "<input type=\"submit\" name=\"submit\" value=\"Compare\" onClick=\"document.compare.submit()\" >";

echo "</form>";

我已将POST更改为GET只是为了获取正在传递的值,在下一页中,我在网址中看到了一堆值。

2 个答案:

答案 0 :(得分:0)

尝试将第二个表单的字段放在单独的&lt; form&gt;中标签

表格1:

<form method='post' action='/process.php'>
    <input name='town' type='text'/>
    <input name='country' type='text'/>
    <input type='submit'/>
</form>

表格2:

<form method='post' action='/process.php'>
    <input name='gender' type='text'/>
    <input name='state' type='text'/>
    <input type='submit'/>
</form>

如果您提交表单1,$ _POST将包含城镇,国家/地区 如果您提交表单2,$ _POST将包含性别&amp;状态

答案 1 :(得分:0)

正如所建议的那样,一些代码和更多细节会有所帮助。但是,如果您在同一页面上有多个表单字段,并且根据操作,您希望提交这些字段的不同集合,那么只需将它们包装在不同的<form></form>元素中。 POST提交仅提交包含该特定块的表单字段。

所以你可以:

<form name='form1' method='POST' action='#'>
   <input type='hidden' name='field1' value='true' />
   <input type='submit' name='submit' value='Submit' />
</form>
<form name='form2' method='POST' action='#'>
   <input type='hidden' name='field1' value='false' />
   <input type='submit' name='submit' value='Submit' />
</form>

如果点击了第一个提交按钮,$_POST['field1'] = 'true', else = 'false'

相关问题