0

複数の製品などを含む製品ページをセットアップしようとしています...mysqlデータベースからデータを取得するwhileループを介して行われ、製品は正常に表示されますが、私が抱えている問題は、できるようにしたいということです各製品を個別に処理します。つまり、どの製品がページに表示されるかわからないため、php で処理しようとすると、柔軟である必要があります。説明するのは少し難しいですが、これが私の現在のコードです。うまくいけば、私の意味がわかるでしょう。

これは、1 つの個別の製品の html です。すべての製品は、以下のコードのように出力されます。

 <form id="<?php print "$material_id";?>" class="form">    
      <div class="supp_bro_mat_wrap">    
            <input type="hidden" name="supp_bro_mat_id" value="<?php print "$material_id";?>" />        
            <input name="supp_bro_qty_input" class="supp_bro_qty_input" type="text" />              
      </div><!---end supp_bro_input_wrap--->
            <input name="supp_bro_add_to_cart" type="submit" class="supp_bro_add_to_cart" id="<?php print "$material_id";?>" />          
 </form>

そして、これがphpコードです。単純なことはわかっていますが、この段階で値を取得できるようにしたいだけです。

 if (isset($_POST['supp_bro_add_to_cart'])) {


    $mat_id = $_POST['supp_bro_mat_id'];
    $mat_qty = $_POST['supp_bro_qty_input'];

    var_dump($mat_id);
    var_dump($mat_qty);
}

そして、最初の製品の数量を入力しようとすると、正しい var_dumps が表示されますが、その下のすべての製品で試してみると、

supplies_browse.php?supp_bro_mat_id=5&supp_bro_qty_input=8768&supp_bro_add_to_cart=Submit

代わりにブラウザのヘッダーに表示されます

supplies_browse.php?sid=masonary

そうあるべきで、var_dumpsはありません。うまくいけば、私が言いたいことを理解していただけると思います。他に何か必要な場合はお知らせください。

ありがとう

4

1 に答える 1

1

投稿内容から判断するのは簡単ではありません<form>が、商品リストの前に HTML にタグが追加されているようです。この追加<form>タグが付いmethod="POST"ています。

このため、商品リストで<form>は、最初の商品のタグが無視され (フォーム要素をネストすることはできません)、最初の商品を送信すると POST 送信が実行されるため、データは HTTP 本文である URL で転送されます。必要な値があり、$_POST変数が正しく入力されます。

その後</form>、最初の製品の末尾にある タグで追加の が閉じ<form>られ、2 番目の製品以降の製品が独自の形式で作成されます。これらの<form>タグにはメソッド属性が指定されていないため、デフォルトのメソッドである GET が使用されます。これにより、URL に関する情報が送信されますが、$_POST 変数には入力されません。

<form>解決策は、ページの先頭から追加のタグを削除し、method="POST"属性 (およびおそらくそのタグの他の属性) を<form>製品の各タグに移動することです。

于 2012-09-02T11:01:20.653 に答える