• 締切済み

子ウィンドウへ引数の受け渡し

Javascriptを使った計算式を作成しております。 計算式のほうは完成しており、ソース内の「A= 」~「F= 」の部分に数値を直接入力し実行すると、 答えが表示される状態になっています。 最終的に6つのTEXTBOXに数値を入力し、送信ボタンを押すと子ウィンドウが開き、 その数値を引数とした計算の答えが表示されるプログラムを作成したいと思っていますが、 計算式を作成したところで、力尽きてしまいました。 どうか、プログラムを完成させるお力添えをお願いします。

みんなの回答

  • m035
  • ベストアンサー率44% (38/86)
回答No.4

あなたのソースの場合は 変数=document.myForm.テキストボックス名.value; とすればいいです。 例えば <form name="myForm"> <input type="text" size="15" name="myFormYen"> </form> に入力された値を変数(仮にYen)に代入したいのであれば、 Yen=document.myForm.myFormYen.value; で変数YenにテキストボックスmyFormYenの値が代入されます。 この方法でfunction内に6つ分代入するように書けばいいと思います。 それと、 <script language="JavaScript"><!-- setInterval("myFunc()",1000); // --></script> </FORM> は</FORM>がいらないと思います。 料金<br> <input type="text" size="15" name="myFormYen"> </form> で先に<form name="myForm">~</form>になっていますから。

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

var w=window.open(子ウィンドウURL,タイトル,属性); w.document.myForm.myFormYen.value=計算結果; てな感じでいけると思います。 他ドメインのページの(でアクセス違反になる)場合は result.html?yen=1050 みたいな形で渡してやって、hrefの解析を開いたページの方でしてやるというようなやり方もあります。

全文を見る
すると、全ての回答が全文表示されます。
  • m035
  • ベストアンサー率44% (38/86)
回答No.2

おせっかいですが導入の仕方を書きたいと思います。 >1氏のソースを計算終了後の部分に追加すればいいんですよ。 例(A~Fをすべて足した答えを別ウィンドウに表示) <html> <head> <script type="text/javascript"> <!-- function inc(){ var ans=0; for(i=0;i<document.fo.elements.length-1;i++){ ans+=eval(document.fo.elements[i].value); }//ここまでが計算部分// var w=window.open("","結果","status=no,toolbar=no,menubar=no,width=300,height=150"); w.document.write("結果:<br>A+B+C+D+E+F="+ans); w.document.close(); //>1氏の方法で別ウィンドウに書き出し// } //--> </script> </head> <body> <form name="fo"> A<input type="text" size=5>+<br> B<input type="text" size=5>+<br> C<input type="text" size=5>+<br> D<input type="text" size=5>+<br> E<input type="text" size=5>+<br> F<input type="text" size=5>= <input type="button" value="結果" onclick="inc()"> </form> </body> </html> このように計算用のfunctionの最後の部分に >1氏のソースを(好みでアレンジしつつ)足せばいいんです。 w.document.write("結果の式とかなんとか書き込む");  ↓変更 w.document.write("結果:<br>A+B+C+D+E+F="+ans); 上記のようにw.document.write(結果入り変数名); にすれば結果を別ウィンドウに書き出せます。

aoikokoro
質問者

お礼

質問の仕方がわるく申し訳ありません。 子ウィンドウに表示させる方法がわからないのではなく 数値を取り出すことができずに困っています。 初めてのプログラミングのため、スマートではないソースを載せることに抵抗があったのですが、 見ていただいたほうが早いと思い、私の作成したソースを補足します。 最初に指定している6つの数値をtextboxに入力したものに変更させる方法を知りたいです。

aoikokoro
質問者

補足

<HTML> <HEAD> <script language="JavaScript"><!-- inh = 19; inm = 0; overm = 15; overc = 105; pach = 3; pacc = 1000; function myFunc(){ myD = new Date(); myHours = myD.getHours(); myMinutes = myD.getMinutes(); mySeconds = myD.getSeconds(); document.myForm.myFormTime.value = myHours + ":" + myMinutes + ":" + mySeconds; pass = myHours * 60 - inh * 60 + myMinutes - inm; if (pass<0){ pass = pass + 24 * 60; } passh = Math.floor(pass/60); passm = pass-passh*60; document.myForm.myFormSec.value = passh + "時間" + passm + "分"; over = (Math.ceil(pass/overm)-pach*60/overm)*overc; if (over>0){ charge = over+pacc; }else{ charge = pacc; } document.myForm.myFormYen.value = charge + "円"; } // --> </script> </HEAD> <BODY> <form name="myForm"> 現在の時刻<br> <input type="text" size="15" name="myFormTime"> <br> 経過時間<br> <input type="text" size="15" name="myFormSec"> <br> 料金<br> <input type="text" size="15" name="myFormYen"> </form> <script language="JavaScript"><!-- setInterval("myFunc()",1000); // --></script> </FORM> </body></html>

全文を見る
すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

単に、結果を表示するためにウィンドウを別に作成するだけなら var w=window.open("","結果","status=no,toolbar=no,menubar=no"); w.document.write("結果の式とかなんとか書き込む"); w.document.close(); とかすればいいです。

aoikokoro
質問者

お礼

質問の仕方が悪くて大変申し訳ありません。 計算式は、1つだけではなく、複数あり、 時間の取得などもしているため、単に「結果表示」をしたいのではなく、 親ウィンドウに入力した数値を子ウィンドウの計算式に代入したいのです。 #2さんの補足に、子ウィンドウのソースを載せましたので、よろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • メッソドをクラスにしたときの引数等の渡し方を教えて下さい

     JAVA初心者です、よろしくお願いします。  簡単な計算を1つのクラスの中でメッソドに計算をさせ、それをメインメッソドに返してやるプログラムで、 そのメッソドをクラス化してやる方法が分かりません。  例えば「表示クラス」は、値を「計算クラス」に渡して計算をさせ、「表示クラス」はその答えだけを受け取り、表示。 「計算クラス」は計算だけをするコードを書きたいのです。  プログラム全体の流れは分かるのですが、メッソドをクラス化した場合の引数の渡し方、受け取り方、戻り値の受け 取り方等をどのように書くのかが分かりません。  何方か、簡単な足し算の例などで、宜しくお願いします。

    • ベストアンサー
    • Java
  • JavaScript→PHPのデバッグ

    JavaScriptからPHPのソースを呼び出し(引数を渡している)て実行させるというプログラムを作成しています。 JavaScript→PHPの引数の動きを追うようなデバッグするためには、どのような方法がありますか? 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • CGIへの引数の渡し方

    直接プログラミングと関係あるかは分かりませんが、 Webなどでよく見る送信ボタンなどの、いわゆる"submit"を押したとき、 CGIが呼び出されることがよくあります。 実は今、あるページから項目を入力して送信ボタンを押すという行為を定期的に繰り返しているのですが、それをプログラムで書きたいと思いました。 そこで質問なのですが、"submit"などからCGIを呼び出したとき、CGIはいったいどうやって入力されたデータなどを読み取っているのでしょうか? CGIについての知識はあまりないのですが、引数として渡されるのでしょうか? (http://aaa.bbb/ccc.cgi?name=100 見たいな感じで) ちょっと調べてみたら上のような感じだと書いてあったので、web上のcgiが呼び出されるhtmlのソースを呼んで、Inputのnameがnameだったので、 ?name=abc としたのですが、何も起こりませんでした・・・ その当たりがよく分からないのでどなたか教えていただけると助かります。

    • ベストアンサー
    • CGI
  • フォーム間での値の受け渡し

    プログラミング初心者です。 急な親の転勤で海外に行くことになって、全く言葉が通じない小学生並みに、私も言語がわかりません…。 現在Visual C# 2008でシステムの開発に携わっています。 フォーム間の値の受け渡しについて、助言をお願いします。 ネットで色々調べたのですが、小難しくて理解できませんでした。 [Form1] ・TextBox2 ・Button1 [Form2] ・TextBox2 1.Form1のTextBox1に値(文字)を入力して、Button1をクリックする。 2.Form2のtextBox2にTextBox1に入力された値(文字)が表示される。 という、作業をしたいのです。 できればソース付きで教えていただけると助かります。 よろしくお願いします。

  • プログラミング float型

    float型の変数x、yを定義し、scanfを使ってキーボードから値を入力して代入する。この2個の変数を引数として平均値を計算し、その値をfloat値として返す関数heikinを作成し、mainから呼び出し、結果を表示する表示するプログラムを作成するという命令なのですが、このプログラムのソースを教えていただけないでしょうか?

  • 引数の受け渡し

    以下のコード(C言語)を見てください。 int i; int a[3]; void swap(int x, int y); void main() { i= 1; a[0]= 2; a[1]= 1; a[2]=0; swap (i, a[i]); printf("%d %d %d %d\n", i,a[0],a[1],a[2]); swap (a[i], a[i]); printf("%d %d %d \n",a[0],a[1],a[2]); } void swap(int x, int y) { x=2; y=0; x = x+y; y = x-y; x = x-y; } 今取り組んでいる問題が 上のC言語風のコードを実行したとき、 以下の引数の渡し方をすると、このプログラムはどんな値を 返しますか(printfでどんな値を表示するか) a. pass-by-value (値渡し) b. pass-by-result (引数を右から左への順で渡す) c. pass-by-reference (参照渡し) d. pass-by-value-result e. pass-by-name (名前渡し) という問題です。 eのpass-by-nameというのがいまいちよくわからないので 上のコードを例に解説、アドバイスをいただきたいと思い、質問しました。どなたかアドバイスをいただけないでしょうか。 あと、他の4問も自分の答えが合っているか確かめたいので、もしよろしければみていただけないでしょうか。お願いします。 a. 1 2 1 0 / 2 1 0 b. 2 2 0 0 / 2 0 2 c. 0 2 2 0 / 0 2 0 d. 0 2 2 0 / 2 2 0

  • コマンドライン引数の*(アフタリスク)の表示について教えて下さい

    皆様どうぞよろしくお願い申し上げます。アドバイス下さい。 java言語で質問です。調べたかぎりわからないことが起こりました。次のものです。コマンドライン引数で引数1は数字、引数2は数字、引数3は* で表示させるプログラムを作りました。引数3番目の演算子*(アフタリスク)を表示する場合にうまく表示できません。 C:\java>java test 2.0 15.0 * 2.0 15.0 Calculation.class ←表示されません。 プログラムは以下のものを作りました。見てください。 /** * 実行クラス:引数テストクラス */ class test{ public static void main(String args[]) { //引数を取得 double num1 = Double.parseDouble(args[0]); //引数1(数値) double num2 = Double.parseDouble(args[1]); //引数2(数値) String kigou = args[2]; //引数3(計算記号) //画面に出しています。 System.out.println(num1); System.out.println(num2); System.out.println(kigou); } }

  • VBA入力フォームで労働時間の計算をしたい

    VBAで入力フォームを作りました。  1)開始時間(textbox1)・終了時間(textbox2)・休憩時間(textbox3)・従事人数(textbox4) の入力を行うと自動的に延べ労働時間(textbox5)計算し表示をしたいです。  【例:13:00(開始) 14:00(終了) 0:15(休憩15分) 5(従事人数) =3:45(textbox5)】  例の3:45という答えがでる計算式を教えていただけないでしょうか? また、上記の同項目が10個あり、延べ労働時間の合計を表示するところも作りました。(textbox6)  2)時間記入時13:00と入力が面倒なので『1300』というように『:』を省略したいです。    なお答えの欄は『:』の表記したいです。  3)また、計算終了後、表記入のボタンを押すと指定したセルに(textbox6)の答えが表示できるよう作成したいです。    0からの質問で恐縮ですが1)~3)の質問お願いについてご回答よろしくお願いいたします。

  • TEXT BOXの数値の・・・・

    Visual Basic初心者です。Visual Basic6.0を使用しています。 例えばTextBox1に数値を入力した際に、なんらかの計算をしてTextBoxもしくはLabelにその計算結果を表示したいのですが・・・またその際にTextBox1の数値を変更したらその結果もそれに応じて変更するものにしたのですが・・・・よろしくお願い致します。

  • 四則演算プログラム(入力式の表示版)

    プログラミング初心者の大学生です。よろしくお願いいたします。  計算式入力し、計算結果を表示するプログラムの作成方法がわかりません。 条件としては、数値は実数の入力を可能とし、括弧の利用は考えないとのことです。    【実行例】  ・計算式="5.2+20*2-3"  ・結果=42.2  いきなり難易度が上がっため、自分の手には負えませんでした…。 どなたか、良いお答えをよろしくお願いいたします。