アプリ版:「スタンプのみでお礼する」機能のリリースについて

動的にcgiから名簿tableを作り先頭にcheckboxを配置しています。
(□、コード、氏名)
そのコードNo.取得し内容によってループ内でcheckboxをif文でオンオフしたいのですがコードNo.(rec[0])の取得方法がわかりません。できるはずとは思うのですが私の力不足で・・・。よろしくお願いします。
var recs = xhrObj.responseText.split("<r>");
var status2 = "<table id='meibo' ><tbody><tr>"
+"<th width='20'><th width='40'>No.</th><th width='120'>氏名</th>"
+"</tr>";
for(var i = 1; i < recs.length - 1; i++){
rec = recs[i].split("<i>");
status2 += "<tr><td><input type='checkbox' name='checkbox' id='"+i+"' /></td>";
status2 += "<td id='"+i+"' />"+rec[0]+"</td><td id='"+i+"' />"+rec[1]+"</td>";
status2 += "</tr>";
}
status2 += "</tbody></table>";
document.getElementById("status2").innerHTML = status2;
var observer = document.getElementById("meibo");
setListener(observer, "click", check);

A 回答 (2件)

その前に、idが数字で始まり、且つ、複数あるのでは。

    • good
    • 0

もともとのデータの構造が不明ですが、(テキスト形式でマークアップのようですが)



ざっとみて気がついた点を…

・単純に開始タグでsplitしているだけみたいだけれど、閉じタグはないの?
・改行コード等は無いのか?(または、処理する必要がないのか)
・splitされたデータ内にその他のタグが残っていることは無いのか?
など。

>コードNo.取得し内容によってループ内でcheckboxをif文でオンオフ
>したいのですが
「コードNo」とはレコード内のコードデータのことでしょうか?
↑の方法でデータをちゃんと分解できているのなら、rec[0]に取得できているのでは?(データ構造が不明なのでわからない)


ついでに、ご質問とは関係ありませんが、
(No1様がご指摘済みですが…)

表示する表の各行のセルにそれぞれ行番号(0始まり)をidとして振っているようですが、
・idは数字で始まれない
・idは文書中重複を許されない
に反しています。 というよりも、そもそも行番号ならばいつでもわかるので、わざわざidで付与する必要もないのでは?
(つけるにしても、行に一つあれば十分)
行数が多いのであれば、表示する表の先頭に、ちゃんと行番号を表示してあげるほうが見やすくなるのでは?

また名簿なのでしょうから、idに利用するなら行番号ではなくレコードのid(↑のコードNoとか?)ではないのだろうか?
(cgiと情報のやり取りをしたりはしないのだろうかなぁ?)

さらに、ご提示のコードで作成されるマークアップも正しくないのでは?
・最初のthの閉じタグがない
 (HTMLだと省略可能だったかも?でも↓とも矛盾)
・td要素の単独の閉じタグと通常の閉じタグが重複
など。(データ内にタグが残っていても、マークアップがおかしくなる。)
    • good
    • 0
この回答へのお礼

基礎も解らず質問したにも関わらず丁寧にお答えいただきありがとうございました。idについては回答いただいたあと勉強するきっかけになりありがとうございました。行番号そのものでrec[0](これが顧客コード)も取得できました。

お礼日時:2010/01/16 09:01

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