3

この問題の良い解決策を探していますか?

すべてのテーブルデータをコントローラーに送信したいだけです。行は動的に作成されており、要素もありません。ここでは、テーブル全体のデータ処理を処理するために少し混乱しています。

<form action="controller.htm"   method="post">
<table>
<tr>
<td>one</td>
<td><two/td>
<td>three</td>
<td>four</td>
<td>five</td>
</tr>
<td>data11</td>
<td>data4</td>
<td>data5</td>
<td>data6</td>
<td>data 7</td>
</tr>
</table>
</form>
  1. テーブルの値をコントローラーにポストする方法は?
  2. コントローラー内で値を取得する方法は?
4

2 に答える 2

1

これは古い問題であることは知っていますが、同様の状況があり、これを少し異なる方法で実行しました。これが他の誰かに役立つことを願っています。

JavaScript で<table>for<tr>要素を解析してから、隠し<input>フィールドに保存した JSON 文字列を作成しました。

これは別のスタック オーバーフローの投稿から改作されました: post data from table row like json format

基本的なコードは以下です。

フル @ JSFiddle: http://jsfiddle.net/leisenstein/vy3ux/

// object to hold your data
function dataRow(value1,value2,value3) {
    this.dxCode = value1;
    this.dxDate = value2;
    this.dxType = value3;
}

// create array to hold your data
var dataArray = new Array(); 

// Start from 2 if you need to skip a header row
for(var i = 2; i <= $("table tr").length; i++){
        // create object and push to array
        dataArray.push(    
            new dataRow(
                $("table tr:nth-child(" + i + ") td").eq(0).html(),
                $("table tr:nth-child(" + i + ") td").eq(1).html(),
                $("table tr:nth-child(" + i + ") td").eq(2).html())
        );
}


var sJson = JSON.stringify(dataArray);
于 2014-05-02T20:04:16.273 に答える