科目名と科目コードの入力方法を改善したい

このQ&Aのポイント
  • 授業評価アンケートのデータ収集システムを卒研で作っています。
  • 特定の科目名をクリックすると、科目名と科目コードが自動的にテキストボックスに代入される機能を実装したいです。
  • これにより、ユーザーが科目名や科目コードを手動で入力する際のミスを防ぐことができます。
回答を見る
  • ベストアンサー

テキストボックスにクリックしたものを代入する

授業評価アンケートのデータ収集システムを卒研で作っています。 あるページ、(test.php)に 学年・クラス etc 科目名/科目コード:[textbox1]/[textbox2] 参照 etc というような行を作ります。 「参照」にリンク先として、 kamoku.html という、 学年・クラス・科目名・科目コード という項目のある表を表示します。 参照をクリックすると、新しいタブで kamoku.html が開きます。(これはできました) このページ内の表をユーザに見て頂き、 test.php にて科目名・科目コードを入力してもらおうと考えました。 しかしそれでは入力ミスも生じてくると思いますで、 表内の、ある科目名をクリックすると、 test.php の科目名のテキストボックス(textbox1)にその文字列(科目名)が代入され、 科目コードも同様にテキストボックス(textbox2)にその文字列(科目コード)が代入される というのはできませんでしょうか? そうすれば入力ミスもなくなりますので。 どなたか教えてください! お願いします!

  • PHP
  • 回答数3
  • ありがとう数4

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

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.3

動くソースを書いてみましたので、これを参考に自分で書いてみてください。 FireFoxでしか 動作確認はしていません。 //------------ // Main.html //------------ <html> <body> <form name=MainForm> 科目名<input type=text name=KamokuName><br> 科目コード<input type=text name=KamokuCode><br> <input type=button value='参照' onClick='window.open("kamoku.html","SubWindow","width=480,height=240");'> </form> </body> </html> //------------ //------------ // kamoku.html //------------ <html> <head> <script Language=JavaScript> <!-- function setData(str01,str02){ window.opener.document.MainForm.KamokuName.value=str01; window.opener.document.MainForm.KamokuCode.value=str02; } // --> </script> </head> <body> <ul> <li><a href="#" onClick="setData('エジプトを掘る','1')">科目名:エジプトを掘る 科目コード:1</a> <li><a href="#" onClick="setData('地中海考古学','2')">科目名:地中海考古学 科目コード:2</a> </body> </html> //------------

y_okamoto_2918
質問者

お礼

わざわざありがとうございます!!! やってみます!!!

y_okamoto_2918
質問者

補足

補足ではありませんが。 教えて頂いた物を動かすことができました! 現在、表形式で 学年・クラス・科目名・科目コード 1 3 国語  13L901 というように、参照ページとして用意しています。 これに教えて頂いたことを添加していきたいと思います! ありがとうございます!!

その他の回答 (2)

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.2

拡張子はhtml 複数のデータでも出来ますよ。 #に関しては、フラグメント識別子で調べてみてください。 時間ない為、こんなんですみません。

y_okamoto_2918
質問者

お礼

参照ページから入力したいことをクリックして、入力できるようになったのですが、 <FORM method="post" action="regist02.php" enctype="application/x-www-form-urlencoded"> として、 科目名/科目コード など、必要項目を入力した後、 regist02.php にジャンプするようにしていたのですが、 できないようになってしまいました・・・ どうしたらジャンプできるようになるのでしょうか?><

  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

んー、きっちり動くソースを提示してもいいんですが、そちらの卒研と言う事なので、コピペでゴーでも良くないと思うので、ざっくりと説明しますね。 新しいタブを開いてるって事は、元の画面は画面遷移をさせずに 元の画面のテキストボックスに入力したいって事でいいんですよね? だとすると、PHPというより JavaScript が適当かと思います。 俺が説明するより、ここらへん見てもらったほうが良さげ。 http://www.openspc2.org/reibun/javascript/sub_window/009/index.html

y_okamoto_2918
質問者

お礼

そうです! 教えて頂いたページは 「マウスを乗せて」 にマウスが乗ると、元のページのテキストボックスに予め用意された値が挿入されるわけですね? 表のように、その時々に挿入したい値が変わるわけですが、カーソルがAに1度乗り、Bに乗ったとき、Bが元のテキストボックスに挿入されるのでしょうか? 教えて頂いたページのものは、1つのテキストボックスについてですが、 複数のテキストボックス、複数のデータでも応用できるのでしょうか。 まずこのサンプルを自分で実現できません。 それぞれの拡張子は.htmlですか? サブウィンドウ側のプログラムのa href="#" はどういう意味があるのでしょうか? 教えてください!! お願いします!

関連するQ&A

  • テキストボックスの値を変数に代入したい。

    テキストボックスの値を変数に代入したいのですが、どういうコードを書けばいいですか? 例えばTextBox1の値を変数xに代入したいのですが。

  • VBAのコンボボックスで選んだものによって、違う数字を代入させたい

    VBAのコンボボックスで選んだものによって、違う数字を代入させたい お知恵をお貸しください。 現在、EXCEL2007のVBAにて、ちょっとしたVBAを作成しています。 コンボボックスには14項目を設定しています。 そのコンボボックスで選んだものによって下のコードの@マーク部に違う数字を代入させたいのですが、どうしたらいいのでしょうか? (例) ----コンボボックス---- あ い う え お か き ・ ・ ・ コンボボックスは14項目あり、コンボボックス内の「う」を選ぶと、5が代入され下のコードの@部分に5が入ります こんな風にコンボボックス内の選ぶものによって違う数字が代入される。 Dim a As Date Dim b As Long a = TimeSerial(CInt(TextBox5.Text), CInt(TextBox6.Text), 0) - TimeSerial(CInt(TextBox3.Text), CInt(TextBox4.Text), 0) Label6.Caption = Hour(a) + Minute(a) / 60 Label7.Caption = (Hour(a) + Minute(a) / 60) * @

  • テキストボックス内の簡単な計算

    はじめまして、よろしくお願いいたします。 エクセル(2003)のマクロで質問です。 いくつか複数のテキストボックスが配置されています。 加算など簡単な計算をテキストボックス内で計算させていおいて、 最終的にボタンで、それら各々のテキストボックスに対応させた エクセルのシートのセルに代入させようとしています。 さて、テキストボックス内で簡単な計算をさせるため、 Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox1.Text = Evaluate(TextBox1.Text) End Sub Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox2.Text = Evaluate(TextBox2.Text) End Sub Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean) TextBox3.Text = Evaluate(TextBox3.Text) End Sub … とさせましたが、 何も入力がないテキストボックスは そのままなにもしなくていいよ、とさせたいですのですが、 上記のままだと、何もない(値が入力されていない) テキストボックスに到達すると 止まります。 何も入力がないテキストボックスは 何もしなくていいよ、は どうしたらよいでしょうか? 誠に不勉強で恐縮ですが ご教授願います。

  • リストボックスをクリックすると、他フォームに値代入

    データベース超初心者です。VBAの知識がほとんどないので、初歩的な質問だと思いますが、よろしくお願いします。 フォームは2つ「入力」と、「コード選択」 (1)フォーム「入力」にあるテキストボックス「商品コード」をダブルクリックすると、フォーム「コード選択」を開く (2)フォーム「コード選択」にあるリストボックス「コードリスト」をダブルクリックすると、商品コードが、フォーム「入力」のテキストボックス「商品コード」に代入される。 ちなみに、コードリストは、2列で、商品コードと商品名が表示されるようになっています。 わかりにくい質問かもしれませんが、どうぞよろしくお願いします。

  • phpとjavascript ・・・・ について

    授業評価アンケートのデータ収集システムの開発を行っています。 科目及び科目コードを入力させるページ(page1.php)があります。 その入力について、入力ミスをなくすために、「参照」ページ(kamoku.html)をつくり、 そこには予め「科目/科目コード」という項目のある表が用意されており、 そのページ(kamoku.html)へジャンプし、そこで入力したい項目をクリックすると、 page1.phpの科目及び科目コード、各々のテキストボックスに入力したいものを代入することに成功しました。 このような構造にする前は、 手入力した後、 「次ページへ」 をクリックすると、次ページへジャンプするようになっていました。 <FORM method="post" action="page2.php" enctype="application/x-www-form-urlencoded"> javascript を利用したのですが、 これが原因なのでしょうか? javascriptを利用したページの拡張子は必ずhtmlじゃないといけないのでしょうか? (page1.phpをただ単にpage1.htmlにしてもダメでしたが・・・) URLについて、 http://----/page1.php 次ページをクリックすると http://----/page1.php?nendo=6&gakunen=1&class=1&kamokumei=&kamokucode=&kind=1&people=&sub=次ページへ のようになり、昔のように次ページをジャンプせず、入力項目が空になったりします。 どなたか解決法を教えてください!!! お願いします><

    • ベストアンサー
    • PHP
  • テキストボックスへの値の代入と、PHP

    function setvalue(){ document.getElementById("text3").value = "ユニックス"; } として、JavaScript側で、参照ボタンが押された時に、 id がtext3 のテキストボックスに値を代入したい場合、、 HTML側で <INPUT type="button" value="参照" onclick="setvalue()"> <INPUT type="text" name="言語" id="text3" size="30" class="ws1" #######> ######の部分に、value属性(value="~")は何も書かなくてもいいのでしょうか。 また、これはJavaScriptの関数を呼んでテキストボックスへの値の代入を実現していますが、 これを、PHPスクリプトで、実現する方法はないでしょうか。 ご指導、よろしくお願いします。

    • ベストアンサー
    • Java
  • エクセルのユーザーフォームにあるテキストボックスへの値代入

    エクセルのユーザーフォームにあるテキストボックスへの値代入 お世話になります. エクセルのシートの入力を,ユーザーフォームを使って入力させています. 新規の場合は空欄のフォームがでるのですが,既存の列を編集するには編集用のフォームで行っています. フォームにはテキストボックスが15個(Textbox1からTextbox15まで)あり,Textbox1はCells(*,1)Textbox2はCells(*,2)というふうにセルの列との関連付けがあります. この規則性を上手く使おうと,For Nextを使っていきたいのですが, Dim r As Integer Dim i As Integer Dim t As String r = ActiveCell.Row For i = 1 To 15 t = "TextBox" & i t = Cells(r, i).Value Next i と,ここまで入力をしてみたものの,値の代入がうまくいきません. MsgboxでCells(r, i)の動きは確認できているので,おそらく,TextBox & iのところが原因と思われますが・・・ どのように修正すればよろしいでしょうか?教えてください.

  • visual basicのテキストボックスについて

    ビジュアルベーシックでカレンダーを作ろうと考えてます。 日付のところをテキストボックスに数字を入れて、カレンダーに見立てようとしています。 でも、そのテキストボックスに値を代入するとき、一つ一つに textbox1.text=1 textbox2.text=2・・・・ と書いていくのはすごくメンドくさく、非効率的です。 今、自分が考えている解決方法は、javascriptにでてくるdocument.forms[0].elements[a].valueのようなテキストボックスなどの名前を指定しなくても値を代入する方法です。 でも、ビジュアルベーシックにこのような操作が可能なのかわかりません。 知っている方がいたら是非教えてください。

  • テキストボックスに入力された内容をクリップボードにコピー

    プログラミング初心者です。少し教えていただけないでしょうか? 3*3で配置したテキストボックスに入力された内容をクリップボードにコピーするツールを作ろうと思っています。  受付番号  名前    備考 1[TextboxA1][Textbox12][Textbox13] 2[TextboxA2][Textbox22][Textbox23] 3[TextboxA3][Textbox32][Textbox33] [実行ボタン] 受付番号は入力の簡素化のため"No."という文字列を入力したいと思っています。もっと効率的な方法があると思いますが 実行ボタンを押したときに下記のプログラムを実行すれば 一応クリップボードにコピーできることが分かりました。 Dim MsgAll as string MsgALL = "No." & Textbox1.text & Textbox12.text & Textbox13.text & vbCrLf &TextboxA2.text (以下Textbox33.textまで) Clipboard.SetDataObject(MsgAll) ただし、3*3のテキストボックスは必ずしも全て入力されるわけではないので空白行の場合はその行をジャンプしたいのです。 各行の受付番号のテキストボックスに入力があるかどうかを判断させて空白だった場合はクリップボードにコピーさせなければよいのでは?と考えています。 色々ネットで調べた結果あらかじめ各行の内容を配列に代入しておき、 テキストボックスのコントロール名を取得してFOR文で処理を繰り返す方法を考えました。 lines(1) = "No." & TextboxA1.text & Textbox12.text & Textbox13.text & vbCrLf lines(2) ="No." & TextboxA2.text & Textbox22.text & Textbox23.text & vbCrLf lines(3) ="No." & TextboxA3.text & Textbox32.text & Textbox33.text & vbCrLf  For i = 1 To 3   ControlName = "TextBox_top" & i   If Me.Controls(ControlName).Text = "" Then    Else     MsgAll = MsgAll + lines(i)     Clipboard.SetDataObject(MsgAll) End If Next 以上のようなプログラムで動くかどうか不安でしたので 新たにプロジェクトを作り直し試みたところ動作したので ほんとうのプログラムにこの部分のロジックを組み込んで動作させたところ ”オブジェクト参照がオブジェクト インスタンスに設定されていません。”のエラーが返り正常に動作しませんでした。 テキストボックス名などがテストプログラムなどとは異なりますが 他に異なる部分はありません。 なぜこのようなエラーが発生してしまうのでしょうか? また、もっと効率のよい方法がある場合はその方法もご教示願えないでしょうか? 大変お手数ですがよろしくお願いいたします。

  • Accessのレポート上のテキストボックス値を設定したい

    AccessのVBAを使っているのですが、作成したレポートに貼り付けたテキストボックスに値を入れることができません。 Report名.textbox名 = "設定したいデータ" ↑とすると「このオブジェクトに値を代入することはできません。」とエラーメッセージが出ます。 どのようにすれば、値を代入することができるのか教えてください。

専門家に質問してみよう