この記事の例では、テーブルを動的に生成し、テーブル データをバックエンドに送信するための JS の関連コードを紹介します。具体的な内容は次のとおりです。
まず要件を見てみましょう。Web ページ上にテーブルを動的に生成し、テーブル内のデータを編集して、テーブル内のデータを保存するためにバックエンド サーバーに送信します。
次に、最初に解決する必要があるのは、テーブルを動的に生成する問題です
1. まず、JS ライブラリ ファイルをインポートする必要があります。
1 | <script src= "../js/jqui/jquery/jquery-1.5.2.min.js" type= "text/javascript" ></script>
|
ログイン後にコピー
2. 次に、事前にページ div に空のテーブルを作成します。これは、ヘッダー
を持つテーブルです。
1 2 3 4 5 6 7 8 9 10 | <table border= "0" style= "text-align: center;" width= "100%" id= "myTable" >
<tr>
<td width= "150px;" >表头1</td>
<td width= "150px;" >表头2</td>
<td width= "150px;" >表头3</td>
<td width= "150px;" >表头4</td>
<td width= "150px;" >表头5</td>
<td width= "150px;" >操作</td>
</tr>
</table>
|
ログイン後にコピー
3. テーブルが作成されたら、テーブルを動的に生成するためのキー コードを記述できます。
をトリガーするためのjsメソッドを書きます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | var num = 0;
function addTable(){
var tableHtml = "" ;
tableHtml += '<tr id="tr' +num+ '">'
+ '<td><input class="addtd" id="cnashu1' +num+ '" style="width:150px;" type="text" name="cnashu1" /></td>'
+ '<td><input class="addtd" id="cnashu2' +num+ '" style="width:150px;" type="text" name="cnashu2"/></td>'
+ '<td><input class="addtd" id="cnashu3' +num+ '" style="width:150px;" type="text" name="cnashu3"/></td>'
+ '<td><input class="addtd" id="cnashu4' +num+ '" style="width:150px;" type="text" name="cnashu4"/></td>'
+ '<td><input class="addtd" id="cnashu5' +num+ '" style="width:150px;" type="text" name="cnashu5"/></td>'
+ '<td><a style="cursor: pointer; color: blue;" onclick="removeTr(' +num+ ')">删除</a>'
+ '<a id="edit' +num+ '" class="edit" style="cursor: pointer; color: blue;" onclick="editDataByOne(' +num+ ')">修改</a>'
+ '<a id="save' +num+ '" class="hide" style="cursor: pointer; color: blue;" onclick="saveByOne(' +num+ ')">保存</a>'
+ '</td>'
+ '</tr>' ;
var elements = $( "#myTable" ).children().length;
$( "#myTable" ).children().eq(elements - 1).after(tableHtml);
num++;
}
|
ログイン後にコピー
タグに タグを追加したことがわかります。これは主にユーザー入力パラメータを提供するために使用され、グローバル変数 num は主に追加された各パラメータの ID を区別するために使用されます。独自性があるから存在する。
4. 次にテーブル
を操作します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function removeTr(trNum){
$( "#tr" +trNum).remove();
}
function editDataByOne(trNum){
$this = $( "#tr" +trNum);
$( ".addtd" , $this ).removeAttr( "readonly" );
}
function saveByOne(trNum){
$this = $( "#tr" +trNum);
$( ".addtd" , $this ).attr( "readonly" , "readonly" );
}
|
ログイン後にコピー
上記の表では削除、編集、保存などの操作を行っていますが、具体的な操作内容は必要に応じて調整できます。 (実は後で調べたら、global num は必要なく、行を追加する操作も実装できることが分かりました。実装方法については、主に js の操作です。時間があるときに勉強します。)
この時点で、テーブルを動的に生成するためのページ コードが完成しました。
記事の前半では、テーブルを動的に生成する方法について説明しました。次に、で複数のデータを取得する方法について説明します。テーブルを作成し、バックエンド サーバーに送信します。
私も開発前にインターネットで情報を調べましたが、簡潔すぎたり、わかりにくかったりしましたが、そのほとんどが Json を使用してバックグラウンドに複数のパラメータを渡すことに言及していたので、この考えに基づいて次のように書きました。コード。
1. まず、テーブル内のデータを取得する方法、または上記の例と組み合わせる方法を見てみましょう
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <div>
<form id= "submitForm" >
<table border= "0" style= "text-align: center;" width= "100%" id= "myTable" >
<tr>
<td width= "150px;" >表头1</td>
<td width= "150px;" >表头2</td>
<td width= "120px;" >表头3</td>
<td width= "120px;" >表头4</td>
<td width= "80px;" >表头5</td>
<td width= "100px;" >操作</td>
</tr>
</table>
</form>
<input type= "button" value= "添加" onclick= "addTable();" >
<input type= "button" value= "提交" onclick= "save();" >
</div>
|
ログイン後にコピー
Table タグの外側に form タグを追加し、form タグの ID を設定していることがわかります。
2. 次に、jQueryの「serialize()」メソッドに従って、inputタグのパラメータを取得します
1 | var msg = $( "#submitForm" ).serialize();
|
ログイン後にコピー
3. テーブル内のデータを取得したら、その値の形式に従って JSON 形式のデータに変換します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | var json = "[{" ;
var msg2 = msg.split( "&" );
var t = false;
for ( var i = 0; i<msg2.length; i++){
var msg3 = msg2[i].split( "=" );
for ( var j = 0; j<msg3.length; j++){
json+= "\"" +msg3[j]+ "\"" ;
if (j+1 != msg3.length){
json+= ":" ;
}
if (t){
json+= "}" ;
if (i+1 != msg2.length){
json+= ",{" ;
}
t=false;
}
if (msg3[j] == "canshu5" ){
t = true;
}
}
if (!msg2[i].match( "canshu5" )){
json+= ";" ;
}
}
json+= "]" ;
|
ログイン後にコピー
上記のコードにより、テーブル内の複数のデータを json 形式のデータに変換することができました。その後、その Json データをバックグラウンドに送信して、ajax を介して処理できるようになります。
この時点で、フォーム内の複数のデータを取得してサーバーに送信するコードの作成が完了しました。これが皆さんの学習に役立つことを願っています。