0

私はaspの初心者で、問題があります。行を動的に追加する共通の関数があり、コードは次のとおりです

function Myfunction(tableid) 
{

var table=document.getElementById("tablerow");        

var rowCount = table.rows.length;        

var row = table.insertRow(rowCount);        


var cell1 = row.insertCell(0); 

cell1.innerHTML = rowCount + 1;


var cell2 = row.insertCell(1);

var element2 = document.createElement("input");

cell2.appendChild(element2);


var cell3 = row.insertCell(2);

var element3 = document.createElement("input");

cell3.appendChild(element3);


var cell4 = row.insertCell(3);

var element4 = document.createElement("input");

cell4.appendChild(element4);

}

また、htmlのAddPageコードは次のとおりです。

"table id="tablerow"

tr align="center"

input type="textbox" name="subjectid"

input type="textbox" name="subjectname"

input type="Checkbox" name="status"  value="Y"

input type="Checkbox" name="status"  value="N"

input type="textbox" name="internal"

input type="textbox" name="external"

tr

そして、次のようにクエリを挿入します。

sql1="INSERT INTO SUBJECT_MASTER (SUBJECT_ID,SUBJECT_NAME,ACTIVE_STATUS,INTERNAL,EXTERNAL) VALUES ("&subjectid & ",'" &subjectname &"','"&activestatus &"','"&internal &"','"&external &"')"

ここで、行を追加し、新しく追加された行を使用してデータを挿入すると、データが挿入されません。だから私を助けてくれませんか。また、チェックボックスの問題もクリアしてください。

4

1 に答える 1

0

従来のASPは、要素名に基づいてフォームデータを読み取ります。各要素は、その名前に基づいて値を送信します。名前がないと、値はサーバーにまったく送信されません。

したがって、新しく追加された要素に値を送信させるには、単に名前を付けます。既存のテキストボックスと同じ名前が必要だとすると、次のようになります。

var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.name = "subjectid"
cell2.appendChild(element2);

var cell3 = row.insertCell(2);
var element3 = document.createElement("input");
element3.name = "subjectname"
cell3.appendChild(element3);

このようにして、値はコンマ区切りの文字列として送信されます。

重要:現在のコードはSQLインジェクション攻撃に対して広く公開されています。データベースをハッキング、コピー、削除したくない場合は、SQLインジェクション(Google itのみ)について学び、コードを修正することをお勧めします。

于 2013-01-06T07:43:05.777 に答える