• ベストアンサー

データのidの多い順に書き出す

ぜひご教授ください。 データをhtmlに、ジャバスクリプトで表にしようとしています。 その際、ジャバスクリプトファイルとデータは別ファイル化することを前提にしています。 具体には、a.jsは、テーブルの書き出しを想定し、次のように書き込んでいます。 //テーブル書き出し html = '<table width="195px">' for (i=0;i<data.length-1;i++) { html += ' <tr>' html += ' <td> ' +data[i]+ ' </td>' html += ' </tr>' } html += '</table>' //書き出し document.write( html ) //--> そして、b.jsはデータファイルとし、次のように書き込んでいます。 var data = new Array() data[0] = "aaaaa" data[1] = "bbbbb" で、これをhtmlに表示させると、aaaaaの下にbbbbbが来るわけですが、考えているのは、データを足していき、htmlの表示は、新しい順にならべたいと考えているため、これでは不服なのです。 いちいち、データファイルに足す際、data[*]を全部書き換えるのも嫌なので、そのまま、*は大きいものを足すだけで、それでいてhtmlの方は*の大きい方から表示する…。 そうするには、どこをどういじればよいのでしょうか。 本気で困っています。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • Ikonos00
  • ベストアンサー率28% (86/302)
回答No.1

for (i=0;i<data.length-1;i++) これを逆に回せばよいかと思います。 for (i=data.length-1;i>=0;i--) ちなみに、 for (i=0;i<data.length-1;i++) だと、最後のdata[data.length-1]が表示されないような…。

nsi2xpz
質問者

お礼

そうだったんだ…。 for (i=0;i<data.length-1;i++)はやってみたんですが、ご指摘のとおり、最後が表示されなくて…困り果てていたのです。 ありがとうございました。本当に助かりました。

その他の回答 (1)

  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.2

こんちくわ。 for (i=0;i<data.length-1;i++) を for (i=data.length-1;i>0;i--) と これでどうよ?? 配列の後ろから順に持ってくる。。。 ただ、確認はしていないので i=data.length かもしれない。や i==0 かもしれない。は、実行確認しながら確かめてみてくださいな。

nsi2xpz
質問者

お礼

ありがとうございます。 実行確認しながらやってみます。

関連するQ&A

  • 自動で表作成

    ぜひご教授ください。 以前、問合せていただいたものの延長です http://oshiete1.goo.ne.jp/kotaeru.php3?q=2261428 データをhtmlに、ジャバスクリプトで表にしようとしていて、ジャバスクリプトファイル(a.js)とデータは別ファイル化(b.jsとc.js)することを前提にしています。 いざ作りはじめたところ、データが多いことがわかったので、表を2列にしたものにできないか、と考えたのですが、その場合、a.jsはどのように書き込めばよいのか、皆目検討がつきません。 よろしくお願いします。 ちなみに、今現在の状況はこうなっています。 a.js↓ html = '<TABLE cellpadding="3" cellspacing="2" width="100%">'   for (i=data.length-1;i>=0;i--) //昇順:  for (i=0;i<data.length;i++) //降順: for (i=data.length-1;i>=0;i--) { html += ' <TBODY><TR>' html += ' <TD bgcolor="#ffffff" onmouseover="this.style.backgroundColor='#8b0000'" onmouseout="this.style.backgroundColor=''"> ' html += ' <TABLE width="100%" cellpadding="1" cellspacing="0" bgcolor="#ffffff"> ' html += ' <TBODY><TR> ' html += ' <td><a href= ' +link[i]+' >' html += ' '+data[i]+ ' </td>' html += ' </tr></tbody></table>' html += ' </td></tr></tbody>' } html += '</table>' //書き出し document.write( html ) b.js↓ var data = new Array() data[50] = "aaaaa" data[49] = "bbbbb"  ↓ data[0] = "xxxxx" c.js↓ var link = new Array() link[50] = "049.html" link[49] = "048.html"  ↓ link[0] = "001.html"

  • ScriptがTABLEタグの中に表示されません。

    下記の様にScriptを使ってTABLEタグの中に表示させようと思ったのですが、test2.jsの「あれ?」がTABLEタグ欄に表示されません。 何方かご教授してもらえませんか? ↓↓↓↓<HTML File>↓↓↓↓ <HTML><BODY> <script src="./test1.js"></script> </BODY></HTML> ↓↓↓↓<test1.js File>↓↓↓↓ document.open(); document.write("<TABLE border=1><TBODY><TR><TD>1</TD><TD>おや?<script src=\"./test2.js\"></script></TD></TR><TR><TD>1</TD><TD>1</TD></TR></TBODY></TABLE>"); document.close(); ↓↓↓↓<test2.js File>↓↓↓↓ document.open(); document.write("あれ?"); document.close();

  • php sql文

    DB内のデーターをphpで表示させています。 どうしてよいかわからず困っています。 DB内のデーターは id | page_id | cat_id | parent_id | name 1 | 1 | 1 | 0 | AAAAA 2 | 1 | 2 | 1 | BBBBB 3 | 1 | 3 | 2 | CCCCC 4 | 2 | 4 | 0 | DDDDD 5 | 2 | 5 | 4 | EEEEE 6 | 3 | 6 | 1 | FFFFF 7 | 3 | 7 | 6 | GGGGG 8 | 4 | 8 | 3 | HHHHH 9 | 5 | 9 | 2 | IIIII 10 | 5 | 10 | 9 | JJJJJ join等を使用してデーターの一覧表示はできているのですが、 <table> <tr> <th>名前</th> <th>ページID</th> </tr> <tr> <td>AAAAA</td> <td>1</td> </tr> <tr> <td>AAAAA</td> <td>2</td> </tr> <tr> <td>AAAAA</td> <td>3</td> </tr> <tr> <td>AAAAA</td> <td>4</td> </tr> <tr> <td>AAAAA</td> <td>3</td> </tr> </table> と表示されます。 ここで上記の ページIDが1のやつは名前をCCCCC ページIDが2のやつは名前をEEEEE ページIDが3のやつは名前をGGGGG ページIDが4のやつは名前をHHHHH ページIDが5のやつは名前をJJJJJ と表示させたいです。 sql文等はjoinだらけで長くなるため省略させていただきます。 省略部分もありますが、お分かりの方がいらっしゃいましたらsql文などをおしえていただけると助かります。

    • 締切済み
    • PHP
  • HTMLのテーブルにデータを流し込む際のレイアウト

    度々、失礼させていただきます。なにぶん見よう見まねです。 「abc.csv」より条件(1)で抽出した後HTMLのテーブルに並べます。 但しこのままですとHTML上、右に伸びていってしまうので4つぐらいで 新しいテーブルに改行したいのですが、お力お貸しください。 <table> <tr> <td> <?php $Data=file("abc.csv"); for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]); if($line[0]=="0" && $line[1]=="1"){ //条件(1) print "<td><table><tr>\n" ; print "<td>{$line[2]}</td></tr>" ; print "<tr>" ; print "<td>{$line[4]}</td></tr>" ; print "</table></td>\n" ; } } ?> </td> </tr> </table>

    • ベストアンサー
    • PHP
  • 外部参照で画像出したいのだが・・。

    タイトルの通りですが、外部ファイルを参照して画像(テーブル等も)表示したいのですがうまくいきません。 <html lang="ja"> <head> </head> <body> <script type="text/javascript" src="js/1_1.js"> </script> </body> </html> そしてこちらが、”js/1_1.js”ファイルです。 document.write("<TABLE BORDER>"); document.write("<TR>"); document.write("<TD><img src="bbs_on.gif"></TD>"); document.write("</TR>"); document.write("</TABLE>"); 画像でなく文字ならばうまくいくのですが、結果は何も表示されません。何がおかしいんでしょうか??※パスはまちがいがありません。

  • 条件をつけて表として書き出すには

    何度もすみません。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=2331409 の延長です。 データやリンク先を書き込んでいるb.js、c.jsは下記のようにして、表として書き出すものの条件を、例えば、データの15~25の間だけ表に書き出す…というようにさせたいと考えています。 例) b.js↓ var data = new Array() data[50] = "aaaaa" data[49] = "bbbbb"  ↓ data[0] = "xxxxx" c.js↓ var link = new Array() link[50] = "049.html" link[49] = "048.html"  ↓ link[0] = "001.html" 表を書き出すa.jsは教わったとおり、↓のように書き込んでいます。 for(i=data.length-1;i>=0;i--){ str_html = str_html + '<tr><td><a href=' + link[i] + '>' + data[i] + '</td>'; --i; if(i==-1){ str_html = str_html + '<td></td></tr>'; }else{ str_html = str_html + '<td><a href=' + link[i] + '>' + data[i] + '</td></tr>'; } } 最小限の改造でできる方法はないでしょうか。 よろしくお願いします。

  • webbrowserで特定のタグを取得したい

    VB6もしくはVBAです。 HTMLの中をループしてタグを取得しています。 For Each myTag In myIE.Document.all.tags("TD") 次のようなHTMLがあって"このTD"に含まれるAタグを取得したい場合、 指定のTD内だけでループしてAタグを取得するにはどうしたらいいのでしょうか? <table width="200" border="1"> <tr> <td><a href="#">AAAAA</a><a href="#">AAAAA</a><a href="#">AAAAA</a></td> 'このTD <td><a href="#">BBBBB</a><a href="#">BBBBB</a><a href="#">BBBBB</a></td> <td><a href="#">CCCCC</a><a href="#">CCCCC</a><a href="#">CCCCC</a></td> </tr> <tr> <td>DDDDD</td> <td>EEEEE</td> <td>FFFFF</td> </tr> <tr> <td>GGGGG</td> <td>HHHHH</td> <td>IIIII</td> </tr> </table>

  • java scriptのwrite()の結果

    <script> document.write("<table border>"); document.write("<tr>"); for(i=0;i<3;i++){ document.write("<td>"+i+"</td>"); } document.write("</tr>"); document.write("</table>"); </script> 例えば上記のような Java Script を作ったとします。 Internet Explorer で実行すると表(HTMLの結果?)が表示されますが、 そうでなく 以下のようなHTMLのスクリプトを表示させる事は できますか? もしできるなら方法をお願いします。 <table border><tr><td>0</td><td>1</td><td>2</td></tr></table>

  • 既存のデータから、指定項目を抽出し表示させる?

    1<>pass<>ip<>名前<>url<>spell<>kana<>initial1<>initial2<>点数<><>日付<> 上記のようなデータが1列づつ保存されているのですが、このデータの中の「名前」と「点数」のみを抽出し、 点数(100点満点)でランキングを10件表示する、というようなスクリプトを探しています。 <table> <tr> <td>順位</td> <td>名前</td> <td>得点</td> </tr> <tr> <td>1位</td> <td>あああ</td> <td>90</td> </tr> <tr> <td>2位</td> <td>いいい</td> <td>80</td> </tr> <tr> <td>3位</td> <td>ううう</td> <td>70</td> </tr> </table> かなり特殊な為、これだけのスクリプトは無いとは思うのですが、同様のデータをランキングするようなスクリプトがあれば、それを流用したいと考えています ランキングの表示件数は10件でなくても構いません。 5件以上であれば、問題ありません。 「日付<>」の後には、まだまだ多くのデータが保存されており、全部書く必要がないかな?と思い省略させて頂きました 余分な機能がついていてもかまいません、どなたかこういったデータをランキングするスクリプトをご存じないでしょうか? また、一から作ってみようかとも思い、いろいろ調べてみたりするのですが、全く筆が進みません 本当は、これだけの処理をするスクリプトがあればいいのでしょうが、かなり特化しすぎていると思いますので、作成の上で参考になるサイト、流用できそうなスクリプトなどありましたらご教授願います。 スクリプトはperlもしくはPHPでお願いします

    • ベストアンサー
    • CGI
  • CSSのid属性

    cssでtableにid属性を指定しています。 同じページの中で同じid属性を何度も使用しても大丈夫なのでしょうか? HTMLチェッカーで 「重複しています」とエラーがでたので心配になりました。 また、以下のように、同じ<table>内で、 <tr>と<td>にそれぞれclassを持たせても大丈夫でしょうか? IEではキチンと表示されるのですが、 本来はやってはいけないことだったりしますか? <table id="table-style"> <tr class="tr1"> <td class="td1"> ほにゃらら </td> </tr> </table> 教えてください! 宜しくお願いします。