1

私は以下の表を持っています:

<table class="authors-list" border=0 id="ordertable">
  <tr>
     <td ><input type="text" id="product_1" name="product_1" class="rounded"/></td>
     <td ><input type="text" size='5' id="qty_1" name="qty_1" class="rounded"/></td> 
     <td class="tdcheckbox"><input type="checkbox"  id="h09_1" name="h09_1" class="rounded"/>
      <input type="text"  id="line_1_09" name="line_1_09" value=""></td> 
     <td class="tdcheckbox"><input type="checkbox"  id="h12_1" name="h12_1" class="rounded"/>
      <input type="text"  id="line_1_12" name="line_1_12" value=""></td> 
     <td class="tdcheckbox"><input type="checkbox"  id="h15_1" name="h15_1" class="rounded"/>
      <input type="text"  id="line_1_15" name="line_1_15" value=""></td>
     <td><input type="text" name="cubespercheck_1" id="cubespercheck_1" value="0" size=5></td>
  </tr>
</table>

ここでフィドルを見ることができます: http://jsfiddle.net/3Befc/7/

私の主な目標は、各チェックボックスを個別の製品として投稿できるようにすることです。製品フィールドには製品ファミリーが入力されます。例は 38114CR です。チェックボックスは製品の長さを表します。長さ 1.8 メートルの 38114CR のコードは 3811418CR で、18 は長さ (1.8) です。

最後に、チェックされた各チェックボックスを一意の製品コードとして投稿できるようにしたいと考えています。したがって、製品 38114CR で 0.9 がチェックされた場合、値 3811409CR を送信します。

私の最終的な目標は、次のものをデータベースに挿入することです:(これはフィドルの望ましい結果によるものです)

**Product           Cubes**

3011409CR           7
3011412CR           7
2011512EX           3
2011515EX           3
5050009PT           2
5050012PT           2
5050015PT           2

私が考えることができる唯一の方法は、テーブルをループし、チェックボックスがオンになっている場所で名前と長さを組み合わせることですが、それでもいくつかの課題があります。

上記のテーブル行をデータベースに挿入するにはどうすればよいですか? 水平行から垂直レコードへの挿入?

ユーザーは任意の製品コードを入力できることに注意してください。

4

2 に答える 2

1

隠しフィールドを使用できます。各行に隠しフィールドを追加します。魔女には「実際の値」が含まれます。

次に、チェックボックスにクリック/変更/任意のイベントを追加し、ユーザーがコードを入力フィールドにキーアップできる場合。イベントは、ID の「行」の終わりを送信する必要があります (_2、_2 など -> 名前を付けた方法で)。

すべてのイベントは同じ関数を呼び出す必要があります。ウィッチは値を隠しフィールドに連結します。

このようなもの - コピーペーストが機能しない例です ;) :

     function makeName(line) {
         // Loop through checkboxes on that line and make the name
         if (<checkbox is checked>)
              document.getElementById('hiddenField' + line).value = document.getElementById('product' + line).value + <checkboxFromLoop> // Etc., etc.
     }

送信時に、隠しフィールドのみを送信します。それらには正しい値が含まれます。

于 2013-04-23T10:27:58.857 に答える
0
$(function () {
    $('#continue').on('click', function () {
        createcodes();
    });
});


function createcodes() {

    //run through each row
    $('.authors-list tr').each(function (i, row) {

        // reference all the stuff you need first
        var $row = $(row),
            $line = $row.find('input[name^=line]'),
            $family = $row.find('input[name*="family"]'),
            $size = $row.find('input[name^=size]'),
            $grade = $row.find('input[name*="grade"]');

        $line.val(
            $family.val() + ' ' + $size.val() + ', ' + $grade.val()
        );

    });
}
于 2013-04-23T20:44:55.533 に答える