0

_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>";

渡された値を取得するためだけに変更POSTGETました。次のページでは、URL に一連の値が表示されます。

4

2 に答える 2

0

2 番目のフォームのフィールドを別々の <form> タグ内に配置してみてください

フォーム 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 には性別と州が含まれます

于 2012-11-28T19:06:36.393 に答える