Javascriptでテーブルデータ行を動的に追加(ASPバックグラウンドデータベース保存例)_JavaScriptスキル
javascript
動的に追加
シート
多くの Web アプリケーションでは、複数行のレコードを動的に挿入する必要がある場所がたくさんあります。たとえば、人材サイトでは、履歴書を記入する際に、実際の状況に応じて項目の数を動的に追加する必要がありますが、これは別のページの形で追加されません。この動的追加は、「同じページに動的に追加し、最後にサーバーに送信してデータベースに保存する」にあります。
この記事では、同様の例を使用して、フロントエンドで Javascript を使用してデータ項目を動的に追加し、バックグラウンドでデータベースに保存します。
ブラウザ: IE.6.0
バックエンド: ASP (VBScript)
フロントエンド: HTML JavaScript
HTML コード:
コードをコピーします コードは次のとおりです:
;
JS コード:
コードをコピー
コードは次のとおりです:
/**//*この関数は 1 行を動的に追加するために使用されます
* tabObj : ターゲット テーブル
* colNum: テーブル内の行の列数
* sorPos: 新しい行のソース。 * targPos: 新しい行が追加される位置。 * */ function addRow(tabObj,colNum,sorPos,targPos)...{ var nTR = tabObj.insertRow(tabObj.rows. length-targPos); // 指定されたテーブルの //指定された位置に新しい行を挿入します。
var TRs = tabObj.getElementsByTagName('TR') // 指定されたテーブルから TRs コレクションを取得します。 >var sorTR = TRs [sorPos]; // sorTR を配置します var TDs = sorTR.getElementsByTagName('TD') // 指定された行から TD コレクションを取得します
if(colNum==0 || colNum) ==未定義 ||colNum==isNaN)...{
colNum=tabObj.rows[0].cells.length;
var ntd = new Array();新しい TD 配列を作成します
for(var i=0; intd[i] = nTR.insertCell() // 新しい TD を作成します。 cell
ntd [i].id = TDs[0].id; // TD の ID を新しいセルにコピーします。 注意: TD の
// サフィックスは
ntd[i] に指定する必要があります。 innerHTML = TDs[i ].innerHTML; // 対応する TD から ntd[i] の innerHTML の値をコピーします
}
}
/**//* この関数は、指定されたテーブル内の指定された行を削除するために使用されます
* tabObj: 指定されたテーブル
* targPos: ターゲット行の位置
* btnObj: 現在クリックされている画像削除ボタン
*
*/
function deleteRow(tabObj, targPos,btnObj)...{ //テーブル行を削除
for(var i =0; iif(tabObj.getElementsByTagName ('img') [i]==btnObj)...{
tabObj.deleteRow(i targPos)
}
}
}
;
フロントエンド コードの概要:
上記のコードで注意すべき点は、元の行
if(colNum==0 || colNum) ==未定義 ||colNum==isNaN)...{
colNum=tabObj.rows[0].cells.length;
var ntd = new Array();新しい TD 配列を作成します
for(var i=0; i
ntd [i].id = TDs[0].id; // TD の ID を新しいセルにコピーします。 注意: TD の
// サフィックスは
ntd[i] に指定する必要があります。 innerHTML = TDs[i ].innerHTML; // 対応する TD から ntd[i] の innerHTML の値をコピーします
}
}
/**//* この関数は、指定されたテーブル内の指定された行を削除するために使用されます
* tabObj: 指定されたテーブル
* targPos: ターゲット行の位置
* btnObj: 現在クリックされている画像削除ボタン
*
*/
function deleteRow(tabObj, targPos,btnObj)...{ //テーブル行を削除
for(var i =0; i
tabObj.deleteRow(i targPos)
}
}
}
;
フロントエンド コードの概要:
上記のコードで注意すべき点は、元の行