プロが教える店舗&オフィスのセキュリティ対策術

javascriptで作成されたテーブルの値を取得したいです。

具体的には、最初に作成するテーブルの大きさを入力するフォームがあり、
ボタンを押すと、そこに入力された値によってテーブルが作成され、
さらに、そこにデータを入力して、また次のボタンを押せば
テーブルに入力された値を取得できるようにしたいです。

最初のテーブルの大きさを入力するフォームと、テーブルを作成することはできたのですが、そこから入力された値を取得する方法が分からず、困っています。

そのプログラムはこんな感じです。
分かる方いらっしゃいましたら、お知恵をお貸しください。
よろしくお願いします。

<html>

<head>
<title>テスト</title>

</head>

<body>


<form name="myForm">
<p>mac.itemを半角数字で入力してください</p>
mac
<input type="text" size="10" name="myFormKK">
item
<input type="text" size="10" name="myFormI">

<input type="button" value="OK" onclick="addAll()">

</form>


<br>
<p>処理量 段取り時間 段取り費 梯状在庫保管費を入力</p>
<form name="fpsck" method="post" enctype="text/plain" action="">
<TABLE BORDER="1" id="Table2">

</TABLE>
</form>


<script type="text/javascript">//3行目以降 開始
<!--
function add3rd(){
var tbl = document.getElementById("Table2").firstChild;
if (!tbl.tagName) {
tbl = document.getElementById("Table2");
}

kk = eval(document.myForm.myFormKK.value)-1;
it = eval(document.myForm.myFormI.value)-1;
for(j=0;j<=it;j++){
var tr = document.createElement("tr");
for(i=0;i<=kk*3+6;i++){

var td1 = document.createElement("td");
var tx1 = document.createElement("input");
tx1.setAttribute("type","text");
tx1.setAttribute("size","8");
tx1.setAttribute("maxlength","18");
tx1.setAttribute("name","psck");
if(i == 0){
itN = j + 1;
itName = "item" +itN;
tx1.setAttribute("value",itName);
tx1.setAttribute("disabled","disabled");
}
else{
tx1.setAttribute("value","0");
}

td1.appendChild(tx1);

tr.appendChild(td1);
}
tbl.appendChild(tr);
}}//3行目以降 終了
// -->
</script>

<script type="text/javascript">//すべての関数実行
<!--
function addAll(){

add3rd();

}

// -->
</script>

</body>
</html>

A 回答 (4件)

document.getElementById('取りたいテーブルのID').rows[y].cells[x].firstChild.value



firsetChild.valueは<td><input~></td>のなかの最初の<input>を指します

テーブルの左上は、x=0。y=0から始まるよ!(知ってると思うけど)
    • good
    • 2
この回答へのお礼

出来ました!!

細かいことまで親切に教えていただいてありがとうございました!!

お礼日時:2009/01/25 19:57

<form>~</form>このタグの中に適当に、<p>~<p>をつくり、


その中に放り込んでみる

数値を入力するときは、
列番号,行番号
を入力。(いずれも半角数値)
正規表現は、それらを分けるために使いました

この回答への補足

すいません。
<form>~</form>このタグの中に適当に、<p>~<p>をつくり、
その中に放り込んでみる
とやってみたのですができませんでした。

あと、質問が悪かったのですが、
実は最初のフォームからの入力された値によって、
このテーブルの他にも作成されるテーブルが6個ぐらいあって、
(それぞれのテーブルの大きさはバラバラです。)
テーブルごとの入力された値をそれぞれ別の配列にいれたかったんです。

やっと正規表現について分かってきた気がします。
htmlもjavascriptも初めて触れたのですが難しいですね。

補足日時:2009/01/24 21:14
    • good
    • 0
この回答へのお礼

いろいろと親切にご回答いただきありがとうございました。

お礼日時:2009/04/05 12:07

そうそう、tbodyを作ろう

    • good
    • 2

<input type="text" value="x,y" onfocus="this.select()" id="p">


<input type="button" value="Value" onclick="
var a,z=document.getElementById('p').value;
if(a=z.match(/^(\d+),(\d+)$/)) alert( document.getElementById('Table2').rows[a[2]].cells[a[1]].firstChild.value);
">

この回答への補足

回答ありがとうございます。

またまた申し訳ないのですが、
これらはどこに入れればいいのでしょうか?

あと、match(/^(\d+),(\d+)$/)のところが、
何をしているのかがよくわからないです。
正規表現だというのは分かったのですが…

1つのことが分かるとどんどん次の問題にあたってしまって
どんどん頭の中がこんがらがってしまって…

勉強不足ですいません。

補足日時:2009/01/24 13:30
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています