• ベストアンサー

onload時の初期表示

金額を表示するのに、カンマをつけるのですが、 データベースから受け取る金額が、数字のみのデータとなりますので、現在、onloadでカンマをつけています。 ここで質問したいのですが、 現在は var str = document.forms[1].kingaku.value; というように名前を指定して、カンマ編集を行っています。(カンマ編集する関数はできあがってます。) カンマ編集しなければいけない画面が複数あり、また、画面によってカンマ編集をするデータも違います。 関数に配列か何かで編集するデータを渡したいと思っているのですが、できるのでしょうか? (質問内容がわかりにくいものでしたらすみません。)

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

関数に配列を渡すには hoge([要素1,要素2,・・]) と書けば、関数側で配列として受け取れます。 ついでに、もう一つの方法も含めてサンプルを書いておきますので参考にしてください。 <html> <head> <title>関数に配列を渡す</title> <script type="text/javascript"> <!-- // IDのリストを受け取って処理 function hoge1(plist) { var msg=''; for(var i=0;i<plist.length;i++) { msg += document.getElementById(plist[i]).value + '\n'; } alert(msg); } // 処理対象のclassを受け取って処理 function hoge2(targetClass) { var msg=''; var taglist = document.getElementsByTagName('input');//inputタグのリスト for(var i=0;i<taglist.length;i++) { if(taglist[i].className == targetClass) { msg += taglist[i].value + '\n'; } } alert(msg); } //--> </script> </head> <body onload="hoge1(['p1','p2','p3']);hoge2('price')"> <input type="text" id="p1" value="123" class="price"> <input type="text" id="p2" value="456"> <input type="text" id="p3" value="789" class="price"> </body> </html>

coroco
質問者

お礼

早速の返答ありがとうございます!大変参考になりまいした。配列で渡すにはそのまま、複数書けばよかったのですね!!クラス指定のやり方も勉強になりました。 ほんとにありがとうございました!!

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

できますよ。 例えば、 function comma(f){ //実際の処理 f.value=commaNum; } とか関数があって comma(document.forms[1].kingaku); と言うように渡せばいいです。

coroco
質問者

お礼

早速のお返事ありがとうございました。複数のデータを渡したかったのですが、参考にします!

関連するQ&A

  • onload時の変数の有効範囲について

    こんばんは。よろしくお願いいたします。 AS2,以下のスクリプトについて import mx.xpath.XPathAPI; abc=new Array(); myXML= new XML(); myXML.ignoreWhite = true; myXML.onLoad =function (){ var XPathString:String = "/data/abc/*"; //条件を満たすノードを配列に格納 abc = XPathAPI.selectNodeList(this.firstChild, XPathString); textarea1.text=abc[0]; //(1) } myXML.load("data.xml"); textarea2.text=abc[0]; //(2) 条件を満たすノードを配列abcに格納したいのですが、(1)のabcには対象の ノードが格納されるのに対して、(2)のabcには何も格納されていません。 (2)のabcでも対象のノードを格納するにはどのようにしたらよいのでしょうか?

    • ベストアンサー
    • Flash
  • データグリッド内の数値をカンマ区切りで表示

    超ド素人です。よろしくお願い致します。m(_ _)m データグリッドに表示しているデータ(金額)を カンマ区切りで表示するにはどうしたらよいですか? for ~ next で処理する間に、 どのように記入すればよいのでしょうか? テーブルのデータ型は数値です。 kingaku  →   kingaku 1234567      1,234,567 プログラムは、ASP.NETです。 よろしくお願い致します。

  • VB(カンマ編集)

    データベースから取得したデータをカンマ編集して、画面に表示するプログラムを作っているのですが、データ数が多すぎて画面に表示するまでに時間がかかってしまっています。何か処理を早くするいい方法はないでしょうか。 プログラムはVBを使っています。 データベースはSQLServerを使っています。 よろしくお願いします。

  • C言語の基礎的な質問---文字配列の初期化

    C言語の配列の初期化に関する質問です。 もし規格によって回答が異なる場合は、ANSIのCということにしてください。 関数の中に、 char str[ ]="ABC"; (イ) という宣言があるとします。(staticは付きません。) これは、 char str[ ]={'A', 'B', 'C', '\0'}; (ロ) と全く同じ意味でしょうか。  似て非なるものに char *str="ABC"; (ハ) というものがあります。この場合は、 strとは違うところに"ABC"('C'の次には'\0'があります。)という領域が確保されていて、 その先頭アドレスでstrが初期化されるのですよね。 (イ)(ロ)(ハ)のいずれの場合も関数の中に書かれているとすれば、 いずれもstrは自動変数で、関数実行時にstrの領域が確保されますよね。 (イ)は配列strの領域が確保されるときに、 配列strとは別のところにある"ABC"という領域の内容を、コピーして設定する、 ということでしょうか。 (ロ)は、配列の領域確保時にstr[0]を'A'で、str[1]を'B'で、str[2]を'C'で、str[3]を'\0'で、初期化する、 ということで、 配列とは別のところには"ABC"という領域はない、 という考えでよろしいでしょうか。 もしそうだとしたら、配列とは別のところに"ABC"という領域があるかどうかという点で(イ)と(ロ)は異なることになりますが、そう考えてよろしいのでしょうか。 それとも、そういうことは処理系に依存することなんでしょうか。

  • 差し込んだデータベースの表示方法について。

    windowsXP、word2003です。Excel2003にあるデータベースを差し込んでいますが、下の2点についてやり方がわからないので教えてください。 (1)カンマが入ってない金額のフィールド(元のExcelはさわれません。)をカンマを入れ、小数点以下2桁までの表示にしたい。 (2)新たなフォームフィールドを一つ作って、差し込んだデータベースの数値を使った計算式を入れたい。 どちらも『フィールドの編集』や『フォームフィールドのオプション』などでやってみたのですが、うまくいきません。わかりにくい文章ですみませんが、よろしくお願いします。

  • 項目名に含まれた ” を上手く表示したいのですが

    いつもお世話になっております。 今回の質問はASPとJavaScriptの組み合わせなので、本来ならばここにすべき質問ではないかもしれませんが 主にJavaScriptを使っている仕様なのでこちらに質問させていただきます。 こちらではなくASP側に記述すべき質問でしたらそのようにお返事ください。 質問です。 ASPでデータベースから項目名を全て抜き出してリンクで表示して クリックされるとOnClickイベントでその項目名を 別のウィンドウに表示させるというプログラムを作っています。 しかしこのASPでデータベースから項目名を抜き出す際に ”があるとJavaScriptエラーが発生してしまいます。 (上記とは別に、単純な例を挙げるとこうなります) var text_next = "<%=str(0)%>"; opener.document.FORM.TEXT_FIELD.value=text_next;     ↓ var text_next = """" ; (←エラー) opener.document.FOEM.TEXT_FIELD.value=text_next; あらかじめstr(0)をASP側でEncodeするとEncodeされた文字そのものが出力されてしまいます。 var text_next = "<%=Server.HTMLEncode(str(0))%>";     ↓ var text_next = "&quot;&quot;";(←エラーじゃないけど……) 私的にASPではなく、JavaScriptで解決しなければいけない問題だと思いましたが var text_next = escape(<%=str(0)%>);     ↓ var text_next = ""; これでは何も出力されないのでどうしようもありません。 そもそもこういう方法からして間違っているなどでもかまいません。 でももし何か打開策がありましたらご指導お願いいたします。

  • FlashのonLoadでキャッシュサーバを越え最新ファイルを読み込むには

    いつも皆様には助けていただき非常に感謝しております。 現在、FlashよりonLoadで、XMLファイルを読み込むプログラムを作成していますが、サーバのファイルを更新しても、古いファイルを読み込み困っています。 パソコンのキャッシュを消しても現象は改善しません。 原因として考えられるのは、キャッシュサーバが影響していると思われます。(キャッシュサーバの無いパソコンでは正常の為) 何とか、キャッシュサーバを越え、サーバより最新ファイルを常に取得するよう記述したいのですが、記述方法が判らず苦労しています。 どなたか、ご存知の方がおられましたらご指導お願いします。 ※参考までに、XML読み込み部分を記述いたします。 import mx.xpath.XPathAPI var myXML:XML = new XML(); myXML.onLoad = function() {  var nodeList:Array;  var XPathString:String = "/基本データ/型式/型式名/*";  nodeList = XPathAPI.selectNodeList(this.firstChild,XPathString);  //読み込んだデータの処理 }

    • ベストアンサー
    • Flash
  • どんなオブジェクトでも表示できる方法はありますか? VB2008

    VB2008で文字列の二次元配列を作成しました。 これをPHPのvar_dump()関数のようにVB.NETでどんなオブジェクトに対しても中身を見せるようにさせる方法が知りたいです。 private test_data( , ) as string = { _ { "あ", "a" }, _ { "い", "i" }, _ { "う", "u" } _ } debug.print (test_data) 'PHPのvar_dump()のようなものはありますか

  • 【jQUery】表示される数字をカンマで区切りたい

    予約フォームを作っているのですが、 表示される合計金額をカンマ区切りで表示したいです。 (最高金額は360,000なので、カンマは1回で大丈夫です) 下記ソースですが、 toLocaleStringメソッドを使用するというのを見つけ、 Number($('.s.kingaku').text(n_s*p_s)).toLocaleString(); という風に書きましたが、変化はありませんでした。 別の方法でもいいので、どなたかご教示いただけませんでしょうか。 -----------js---------- $(function(){ $('[name=datename]').on('change',function(){ $(this).closest('label').nextAll('.parent:eq(0),.children:eq(0)').prop('disabled',!$(this).prop('checked')); }).trigger('change'); $(':checkbox,select').on('change click',function(){ var souryo=0; var p_s=9000; var p_a=6000; var n_s=0; var n_a=0; $('.parent:not(:disabled):not(:has(option[value=""]:selected))').each(function(){ if($(this).val()=="S") n_s+=parseInt($(this).next('.children').val()); if($(this).val()=="A") n_a+=parseInt($(this).next('.children').val()); }); $('.s.maisu').text(n_s); $('.a.maisu').text(n_a); $('.s.kingaku').text(n_s*p_s); $('.a.kingaku').text(n_a*p_a); if(n_s+n_a>=16){ souryo=1200; }else if(n_s+n_a>=11){ souryo=1000; }else if(n_s+n_a>=1){ souryo=850; } $('.souryo').text(souryo); $('.all.kingaku').text(n_s*p_s+n_a*p_a+souryo); }).eq(0).trigger('change'); }); ----------html---------- <dd class="required"> <div id="result"> S席:合計<span class="s maisu">0</span>枚 × 9,000円 = <span class="s kingaku">0</span>円<br> A席:合計<span class="a maisu">0</span>枚 × 6,000円 = <span class="a kingaku">0</span>円<br> 送料:<span class="souryo"></span>円(~10枚:850円,~15枚:1000円,16枚~:1200円)<br> 合計:<span class="all kingaku">0</span>円 </div> </dd>

  • PHPでMySQLのデータを表示したい

    /* どなたか以下のエラーの原因をご教授ください。よろしくお願いいたします。 金額の多い人順にデータを並べ替えて上位3人を順番に表示するプログラムです*/ <?php mysql_connect("localhost","user","password"); mysql_selectdb("rensyu"); $result = mysql_query("SELECT * FROM uriage ORDER BY kingaku DESCLIMIT 3"); $uriageStr = ""; $count = 1; while(!$data = mysql_fetch_array($result)) { $uriageStr = $uriageStr."namae".$count."=".$data[0]."&kingaku".$count."=".$data[0]."&"; } $uriageStr = substring($uriage,0,length($uriage)-1); print($uriageStr); ?> /* MySQLにはrensyuデータベースを作成、それにuriageテーブルを作成、フィールドとしてnamaeとkingakuを作成、 namaeにakiko,bunta,coco,daisuke,eikoを入力、それぞれにkingakuとして1,2,3,4,5を入力している。 この場合http://localhost/get_uriage.phpと入力した場合次のような結果が表示されるはずです。 namae1=eiko&kingaku1=5&namae2=daisuke&kingaku2=4&namae3=coco&kingaku3=3 しかし、表示結果は Parse error:parse error,unexpected T_STRING in C:\www\get_uriage.php on line 9 でした。 TeraPadの行表示でで9行目は $count = 1;です。(コメントは除く) */

    • 締切済み
    • PHP

専門家に質問してみよう