phpとjavascriptについての授業評価アンケートデータ収集システムの開発に関する問題

このQ&Aのポイント
  • 授業評価アンケートのデータ収集システムの開発において、phpとjavascriptを使用しています。しかし、入力ミスをなくすために参照ページを作成し、そこで入力したい項目をクリックすると、次ページに移動せずに入力項目が空になってしまう問題が発生しています。
  • 問題の原因はjavascriptを利用したページの拡張子が必ずhtmlであることが求められるため、phpで作成したページの拡張子をhtmlに変更しても解決しないということです。
  • 具体的な問題のURLは、http://----/page1.phpから次ページへ移動する際に、入力項目が空になることがあります。この問題を解決する方法を教えていただきたいです。
回答を見る
  • ベストアンサー

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
  • 回答数2
  • ありがとう数2

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

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

前回の奴の改訂版。 Main.php の一行目は 確認用に表示してるだけ。深い意味はないです。 kamoku.html は window.close(); 付けただけ。 //------------ // Main.php //------------ <?php if ($_REQUEST) print_r($_REQUEST); ?> <html> <body> <form name=MainForm action="Main.php" method=post> 科目名<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");'> <input type=submit value='send'> </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; window.close(); } // --> </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
質問者

お礼

できました!!!! ありがとうございます!!!!

その他の回答 (1)

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

んー。。多分、それって俺が書いたスクリプトを入れた事によって起こった事だとは思いますが、もしかして、↓で俺が書いたのを そのまんま埋め込んじゃってません? http://questionbox.jp.msn.com/qa6440616.html 最初に <FORM method="post">としているのに、method が get になって送られているように見えるので、<form>タグを 二重に書いたりしてませんか? なんか、それ以外にも 理由がある気がしないでも無いんで、あとで ちょっと調べてみます。 あと、「文字列の長さを指定する方法」のくだり。 http://questionbox.jp.msn.com/qa6443117.html これだと記号6個でも通っちゃうんじゃないかな~?とか思ったり。 極端な例ですが「(^o^)v」でも通りますよ。きっと。 正規表現使うとか ctype_alnum()を絡めるとかしたほうがいいと思います。

関連するQ&A

  • phpでのセレクトボックスからの受け渡しについて

    phpにおいての、セレクトボックスにより選択させたデータの受け渡しについて、どなかか教えてください。 授業評価アンケートのデータ収集システムを卒研で開発しています。 その中の一部で、 年度・学年・クラス を各々セレクトボックスにて選択させるページがあります。 仮にpage1.htmlとし、以下にその一部を示します。 <FORM method="post" action="page2.php" enctype="application/x-www-form-urlencoded"> <P> 年度: <SELECT name="nendo"> <OPTION value="1">2006</OPTION> <OPTION value="2">2007</OPTION> <OPTION value="3">2008</OPTION> <OPTION value="4">2009</OPTION> <OPTION value="5">2010</OPTION> <OPTION value="6" selected>2011</OPTION> <OPTION value="7">2012</OPTION> </SELECT> 学年: <SELECT name="gakunen"> <OPTION value="1">1年</OPTION> <OPTION value="2">2年</OPTION> <OPTION value="3">3年</OPTION> <OPTION value="4">4年</OPTION> </SELECT> クラス: <SELECT name="class"> <OPTION value="1">1組</OPTION> <OPTION value="2">2組</OPTION> <OPTION value="3">3組</OPTION> <OPTION value="4">4組</OPTION> <!-- --> </SELECT> </P> <P><INPUT type="submit" value="科目選択へ"> <INPUT type="reset" value="取り消す"></P> 次のページ(page2.php)では 科目・分類 を各々セレクトボックスにて選択させるページを用意します。 その際に、科目・分類の各々のセレクトボックスの上に、 前ページ(page1.php)にて選択された値(valueではなく文字列(2008,1年))を表示します。 年度:~~ 学年:~~ クラス:~~ これについては以下の方法で成功しました。 年度:<? echo $_POST["nendo"]+2005?> 年 学年:<? if ($_POST["gakunen"] == "1"){ echo "1年"; } else if ($_POST["gakunen"] == "2"){ echo "2年"; } else if ($_POST["gakunen"] == "3"){ echo "3年"; } else if ($_POST["gakunen"] == "4"){ echo "4年"; } ?> クラスについても同様の手法。 ここからが本題です。 page1.html→page2.php に受け渡した年度・学年・クラスのデータを page2.php→page3.php にも同じように、年度:~~・・・と表示させたいのですが、わかりません。 hiddenというのを使うのでしょうか。 調べても、このパターンのように1ページまたいでのデータの受け渡し方法がよくわかりません。 他の方法もあるのでしょうか。 どなたか具体的に教えてください!

    • 締切済み
    • PHP
  • テキストボックスにクリックしたものを代入する

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

    • ベストアンサー
    • PHP
  • php セレクトボックス 分岐 わかりません・・・

    php if文? セレクトボックスの選択に応じて、次ページで表示するものも変えたい。 授業評価アンケートのデータ収集システムを開発中です。 page1.php では、 年度(セレクトボックス)[nendo] 学年(セレクトボックス)[gakunen] クラス(セレクトボックス)[class] 科目名(テキストボックス)[kamokumei] 科目コード(テキストボックス)[kamokucode] 分類(テキストボックス)[kind] 履歴者数(テキストボックス)[people] を選択及び入力します。 page2.php では page1.php で選択及び入力された情報をPOST?hidden?などを利用し、 年度:2011 学年:1 クラス:1 科目名:国語 科目コード:11L901 分類:講義科目 履歴者数:40 のように表示させ、その下にアンケートの回答者数を入力する表を示します。 分類のセレクトボックスには4種類の項目があります。 講義科目・体育科目・実験科目・HR です。 分類により、アンケートの設問数が異なるようにしたいのです。 たとえば、 講義科目は設問が1~5。体育科目は1~8。実験科目は1~10。HRは11~15。 だとします。 page1.php 入力された「分類」に応じて、設問数の異なる、 page2.php を表示したいのですが、わかりません。 また、アンケートの表については、 A~F評価があり、 設問1のAならそのマスをname="1A"、設問2のBならname="2B",・・・というようにしています。 page3.php 入力したものを全て表示し、で確認ページとし、 page4.php で、「登録」ボタンを押すと、 年度 学年 ・ ・ ・ 履歴者数 ・ ・ ・ 1A 1B ・ ・ ・ 15F (↑のような構造のtableも用意済み) のデータをmysqlに挿入します。 「分類」による分岐をせず、 page2.phpで、設問数1~5の場合で、データの挿入には成功しました。 6~15については、空となっています。 「分類」により設問数の異なるpage2.phpを表示し、 現在の段階のように、データを挿入できるような形態にできませんでしょうか? どうかお願いしたします!!!!!!!!!! 時間がありません>< お願いします!!!!

    • 締切済み
    • PHP
  • クリックランキング JavaScript+PHP

    クリックランキング JavaScript+PHPで作成しようと思います。 リンク画像をクリックすると、リンクページ先にページ移動&DBにクリックの値を追加をしたいのですが・・・・ おそらく、画像をクリックするとJavaScriptへリンク先URLと画像コードを渡して、リンク先は、Window.Openか何かで開いて、画像コードを PHPプログラムに渡すのではないかな?と思うのですが・・・。 書き方がいまいちわかりません。 サンプルコードかそのようなサイトはありませんでしょうか?? 教えて下さい。

  • javascriptにphpの変数を用いる

    JavaScriptでサブウインドウのフォームから親ウインドウのフォームにデータを送るプログラムを書いています。 親ウインドウのページによって処理を変えているのですが、phpの変数を使うと関数自体がエラーになってしまいます。 どう書くのが正しいのでしょうか?教えてください。 プログラムは下記です。 if(page=="0"){ window.opener.document.form_name.input_name.value=input_data; window.close(); } else{   for(i=1; i<6; i++){     var pagename = "page_"+i;     if(page == pagename){ window.opener.document.<?php echo $_GET[form_name]; ?>.<?php echo $_GET[input_name]; ?>.value=input_data; window.close();   } }

  • php、MySQL、javascriptで

    php MySQL javascriptを使ったウェブアプリを作っています。 商品コードを入力すると、隣の欄にその商品コードに対応する商品名と価格が表示され、それにより入力した商品コードを確認しながら、さらにその隣の個数欄に個数を入力し、その下の登録ボタンをクリックして、注文票に商品を追加していきます。 数品のレコードを登録し、登録が完了したら、最下部の「この内容で注文票を確定する」ボタンをクリックすることにより、注文票が確定されるという内容の部分があります。 その上手な作り方があるでしょうか。 とりあえず、力技で何とか作って動いてはいますが、あまりスマートでないと感じています。 Submitボタンが2つと、商品コードを入力した後に、onBlurで処理ページに移動し、そこからLocationで戻ってくるという作りで、変数の受け渡しにPOSTやMySQLを使い、強引な感じです。 getElementByIdを使うといいかなと思いましたが、phpに値を渡すなど、いくつか難しい箇所があり、断念しました。 コードでなく、言葉でも結構ですから、こういう流れで作ったら?というヒントなどいただければ幸いです。 同様なことを実現しているページや解説ページも大歓迎です。 もちろん、コードによる説明は大歓迎です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPとJavaScriptで...

    PHPで以下のようなリンクを生成し、 <form name="hoge" method="post"> <input type="hidden" name="hogehoge"> </form> <a href="javascript:void(0)" onClick="submit('0')">あ</a> <a href="javascript:void(0)" onClick="submit('1')">い</a> <a href="javascript:void(0)" onClick="submit('2')">う</a> <a href="javascript:void(0)" onClick="submit('3')">え</a> <a href="javascript:void(0)" onClick="submit('4')">お</a> POSTで受け取ったデータを再びPHPで使用したいのですが、 (同一ページ内で) 色々調べてみたのですが、いまいちわかりません。 JavaScriptの部分をどのようにしたらよいか、また根本的に間違っていたらどのように変えればよいか、 教えてください。 m(_ _)m

    • ベストアンサー
    • PHP
  • Web上(php)からmysqlにデータを挿入する

    授業評価アンケートのデータ収集システムを開発しています。 年度(セレクトボックス)[nendo]・学年(セレクトボックス)[gakunen]・クラス(セレクトボックス)[class]・科目名(テキストボックス)[kamokumei]・科目コード(テキストボックス)[kamokucode]・分類(セレクトボックス)[kind]・履歴者数(テキストボックス)[people] について、POST?hidden?でデータをページをまたいで持っていきます。 最終的に、アンケートの評価として、設問1~14のそれぞれについてA~F評価の人数を入力します。 表形式にしており、 設問1のA評価については、name="1A" 設問2のB評価については、name="2B" のようにしています。 そして、 「登録ボタン」 を押すと、 年度・学年・ ・・・ ・履歴者数 及び 設問1~14のそれぞれについてA~F評価の人数 をデータベースに挿入したいのですがわかりません。 データベースの構造は、 データベース名:student テーブル名:data field: nendo gakunen class kamokumei kamokucode kind people 1A 1B ・ ・ ・ 31F のようになっています。 今、挿入しようとしているアンケートについては、設問数は14です。 if文で、「分類」の選択(4つ)に応じて、設問数が変えたいため、31Fまでフィールドを用意しています。 今、挿入しようとしているものは年度や学年や・・・と、設問1~14のそれぞれについてA~F評価の人数ですが、フィールドが・・・31Fまであっても問題ないのでしょうか? <?php mysql_connect("localhost", "aiueo","##aiueo"); //データベースへ接続 mysql_select_db("aiueo"); //データベースを選択 $14F = $_POST["14F"]; $14E = $_POST["14E"]; $14D = $_POST["14D"]; ・ ・ ・ $people = $_POST["people"]; $kind = $_POST["kind"]; $kamokucode = $_POST["kamokucode"]; $kamokumei = $_POST["kamokumei"]; $class = $_POST["class"]; $gakunen = $_POST["gakunen"]; $nendo = $_POST["nendo"]; $sql = 'INSERT INTO `data` (`nendo`, `gakunen`, `class`, `kamokumei`, `kamokucode`, `kind`, `people`, `1A`, `1B`, `1C`, `1D`, `1E`, `1F`,・・・) VALUES     (\'\', \''.$nendo.\''.$gakunen.'\', \''.$class.'\', \''.$kamokumei.'\', \''.$kamokucode.'\',\''.$kind.', \',\''.$people.'\', \''.$1A.'\', \''.$1B.'\', \''.$1C.'\', \''.$1D.'\', \''.$1E.'\', \''.$1F.'\',・・・) mysql_query( $sql ); ?> のようにしています。 どなたか教えてください!!!

    • ベストアンサー
    • PHP
  • javascript + php でエラー

    エラーを取り除くことができず、困っています。 助けてください。 下記のようなコードで、PHPからjavascriptに文字列を渡しているのですが、 文字列に改行コードがあるとエラーになってしまいます。 (改行コードがない場合はエラーはでません) 文字コードはEUC-JP、改行はLFとしています。 エラーの原因と、対策を教えてください。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=euc-jp"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> <!-- function sampl(str) { alert(str); } //--> </script> </head> <body> <form method="post" action="#"> <?php $str = "テスト\n改行あり"; ?> <input type="button" value="実行" onClick="sampl('<?=$str?>')"> </form> </body> </html>

  • JavaScript+PHPでのボタンの値について

    お世話になります。現在下記のようなコードです。 #Html側 <script language="JavaScript"><!-- function send1() { document.Form1.submit(); } function send2() { document.Form2.submit(); } // --></script> <form name="Form1" action="tesuto1.php" > 中略 </form> <form name="Form2" action="tesuto2.php" > 中略 </form> <form> <input type="button" name="botan" value="送信" onClick="send1()"> </form> <form> <input type="button" name="botan" value="取消" onClick="send2()"> </form> <form> <input type="button" name="botan" value="確認" onClick="send1()"> </form> #PHP側 tesuto1.php echo "値は".@$_POST["botan"]."です"; という感じで、どのボタンがクリックされたか判別するために、 ボタンの値を取得したいのですが。 よろしくお願いします。

専門家に質問してみよう