2011-06-18 23 views
1

注文の詳細を収集するためのHTMLテーブル基本請求書があります。新しい表の行は、ユーザーが必要とするときに追加または削除できます。テーブルには、アイテム名、タイプ、色、単価、数量などの列があります。私は<input><select>タグを<td>タグの中に入れてデータを収集します。形式の入力フィールドの可変数

完全な請求書をデータベースに提出する必要があります。私が抱えている問題は、<input><select>の数が請求書の項目に基づいて異なるため、入力値を$_POST変数に取得する方法がわかりません。

javascriptを使用して生成されたテーブルの行IDに基づいて、入力フィールドに動的または静的な名前を付けることができます。しかし、私はどのように私のPHP配列や変数に送信終了時にこれらのデータを収集することができますか?

これは1つのテーブル行です。他のすべてはこれに似ています。

<tr class="table_row_blue"> 
       <td class="table_data_index">1</td> 
       <td><select> 
        <option>Test</option> 
        </select></td> 
       <td class="table_data_item"><select> 
        <option>&nbsp;2GB&nbsp;</option> 
       </select></td> 
       <td><input type="text" id="price_field" size="6"></td> 
       <td><input type="text" id="qty_field" size="6"></td> 
       <td><span class="table_subtotal">125,200.00</span></td> 

      </tr> 

私の考えを実現するためのアイデアを教えてください。

+0

PHPの部分では、if isset($ _ POST ['optional property'])を使って値が存在するかどうかを確認します。 – Ibu

+0

@lbu yaしかしこのテーブルm私はこれを動的にチェックしなければならないのか、それともこのように動的に行う方法があるのでしょうか?それはループなどを使用していることを意味します。 – Learner

+0

質問を編集してください。いくつかのことは明らかではありません:$ _POSTに値を取得することはどういう意味ですか?送信時に投稿する入力値を配置するのはブラウザです。 2番目の入力フィールドには名前がありません。 3番目の段落の3番目の文は余分な単語を持つように見えるので、それは少し不明瞭です。最後に、フォームから配列を取得できることを最後に知っていますか?もしあなたが名前をあなたのフィールド、すなわち "items []"にちょうどハイブするならば、そのような名前を持ついくつかの入力があれば、それらはすべて$ _POST ['items']になります。 "items []"という名前のフィールド – morphles

答えて

3

は、変化するすべての部分をデータベースの別々のテーブルにカプセル化します。それらを別々に保存し、外部キーを使用して相互に関連付けることができます。

も、

<input name="data[Invoice][field1]" /> 
<input name="data[Invoice][field2]" /> 

のようなあなたのHTML入力の命名配列を使用することをお勧めしますこれは、より構造化および反復処理するのは簡単である、あなたのデータを提供します。

1

送信する行数を保持する隠しフォームの値を追加します。 PHPの最後では、まず行の数を確認し、 行インデックスを使用してすべての値を取得します。

1

あなたは配列に提出する入力フィールドを持つことができます。

$_POST['data'][0]['price_field'] 

どおり$ _POSTに表示されます

<input type="text" id="price_field" name="data[0][price_field]" size="6"> 

私はあなたが差別化要因として、エントリの一意のIDを使用することをお勧め(上記の例では0を置き換えます)

関連する問題