フォームの値を取得できません、その他

このQ&Aのポイント
  • 初心者です。フォームに日付が入ったとき、イベント処理でCGIプログラムを実行し、結果をインラインフレーム内にホットテキストとして表示したいのですが、フォームの値が取得できず、それ以降の処理もできていません。詳しくご教示いただけないでしょうか。
  • <FORM name="dateFORM" action="dateFORM.cgi" target="heute_artikel"><INPUT type="text" name="day" onfocus="dateFORM.cgi"><INPUT type="text" name="month"></FORM> としておいて、日付を増減するボタンを押すたびに、下のfunction setDatumIntoForm()を呼んで、数字をこのフォームに入れ、その数字をフォーム側がonfocus イベント処理で取得して、dateFORM.cgiを呼び、以下のような処理をさせたいのです。
  • 以下はイベントで呼び出される dateFORM.cgi です ************************* #!/usr/local/bin/perl require 'cgi-lib.pl'; #フォーム(dateFORM)の数字を取得したい。 &ReadParse(*dateFORM); $day = $dateFORM{'day'}; $mon = $dateFORM{'month'}; #これができません opendir(DIR, "kalender"); while ($file = readdir(DIR)) closedir(DIR); $todaystr=$mon'.'$day; #次に検索する/表示する for (@file) { $FLname = $_; $find = index $FLname, $todaystr; # 検索 if ($find =1) { <a href=$FLname>todaysKalenderFiles; #関連づけして、インラインフレームtodaysKalenderFilesにタイトルだけを表示したい。 } } exit;
回答を見る
  • ベストアンサー

フォームの値を取得できません、その他

初心者です。フォームに日付が入ったとき、イベント処理でCGIプログラムを実行し、結果をインラインフレーム内にホットテキストとして表示したいのですが、 まず、イベントに自信がありません。フォームの値が取得できず、それ以降の処理もできていません。詳しくご教示いただけないでしょうか。 <FORM name="dateFORM" action="dateFORM.cgi" target="heute_artikel"><INPUT type="text" name="day" onfocus="dateFORM.cgi"><INPUT type="text" name="month"></FORM> としておいて、日付を増減するボタンを押すたびに、下のfunction setDatumIntoForm()を呼んで、数字をこのフォームに入れ、その数字をフォーム側がonfocus イベント処理で取得して、dateFORM.cgiを呼び、以下のような処理をさせたいのです。 function setDatumIntoForm(gkibakday, globalmonth) ////フォームに月日をいれる { document.dateFORM.day.value= globalday; document.dateFORM.year.value= globalmonth; } ** 以下はイベントで呼び出される dateFORM.cgi です ************************* #!/usr/local/bin/perl require 'cgi-lib.pl'; ##フォーム(dateFORM)の数字を取得したい。 &ReadParse(*dateFORM);  $day = $dateFORM{'day'}; $mon = $dateFORM{'month'}; ##これができません opendir(DIR, "kalender"); while ($file = readdir(DIR)) closedir(DIR); $todaystr=$mon'.'$day; #次に検索する/表示する for (@file) { $FLname = $_; $find = index $FLname, $todaystr; # 検索 if ($find =1) { <a href=$FLname>todaysKalenderFiles; #関連づけして、インラインフレームtodaysKalenderFilesにタイトルだけを表示したい。 } } exit;

  • Perl
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
noname#26283
noname#26283
回答No.1

 ちょっと気になる点を… > document.dateFORM.year.value= globalmonth; は、正しくは、 > document.dateFORM.month.value= globalmonth; ではないでしょうか?  また、最初の > function setDatumIntoForm(gkibakday, globalmonth) ////フォームに月日をいれる も、カッコの中が何か変ですが… > function setDatumIntoForm(globalday, globalmonth) ////フォームに月日をいれる …ですよね?  外してたらすみません...

tonka729
質問者

お礼

どうも失礼しました。記入のミスでした。ご指摘のとおりです。こんなことではお答えを頂けませんでしたね。 誤りの箇所を訂正して、もう一度アップしなおします。

関連するQ&A

  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • 見つけたファイルの名前をA HREF 属性をつけてインラインフレームに表示するには?

    前の質問から一歩前進して、ここまできました。 エラーがでる箇所はA HREF のところです(一応。。) インラインフレームheute_artikel の中に、この関連属性をつけたファイルの名前を改行しながら表示したいのですが、よろしくご指導ください。 $todaystr= "$month.$day"; #次に検索する/表示する opendir(DIR, "kalender"); while ($file = readdir(DIR)) {}; closedir(DIR); # 検索 関連づけして、inLineFrame heute_artikelへ for (@file) { $FLname = $_; $find = index $FLname, $todaystr; if ($find =1) {<a href=$FLname target="heute_artikel"></a>\n; } }

    • ベストアンサー
    • Perl
  • 値の取得について

    IPアドレス入力欄のように以下のソースのような流れを作成したのですが、エリアに3文字入力をして、入力したものの最後の文字が数字であったら、キーボードのTabを使っても、onKeyUpで呼んだ関数でも、その入力した3文字が数字だと認識してすぐ横のエリアに移りたいのですが、その入力をした際の3文字目の値を取得することは可能なのでしょうか?Whichを使ってString.fromCharCodeを使って押されたキーを取得しようとしたのですが、構文エラーになってしまい、困っています。 例 入力したものが1a1→数字と認識されて横のエリアに飛ぶ         11a→三文字目が"a"だから数字でないので飛ばない <script language="JavaScript"> <!-- var str; var data; function tobu1(){ str = document.form1.txt3.value; data = str.match(/[^0-9]/g); if( str.length >= 3 && !data ) document.form1.txt4.focus(); } ・・・ <body> <INPUT type="text" name="txt2" size="3" value="" maxlength="3" onKeyUp="tobu1()" onFocus="this.select()">. <INPUT type="text" name="txt3" size="3" value="" maxlength="3" onKeyUp="tobu2()" onFocus="this.select()">. <INPUT type="text" name="txt4" size="3" value="" maxlength="3" onKeyUp="tobu3()" onFocus="this.select()">. <INPUT type="text" name="txt5" size="3" value="" maxlength="3" onFocus="this.select()">

  • 別フォームの値を取得したい

    カテゴリーが、HTMLなのかASPなのか、判断がつかないので、とりあえず「その他」に投稿します。 説明が難しいので、わかりにくいと思いますが、よろしくお願いします。 (用語の使い方や表現が間違ってたらすみません) 一つの画面にフォームが二つあり、FORM1へsubmitすると、選択したファイルのダウンロードを行い、別ブラウザ上に表示します。画面は遷移しません。 FORM2へsubmitすると、別画面へ遷移して処理を行います。 別画面に遷移後、FORM1のselect部品のoption値を取得したいのですが、どうしたらいいでしょうか? selectでなければ、hidden属性の部品をFORM2内に設定しておいて、FORM2_OnSubmit()内でセットしてやればいいと思うのですが、selectだと配列になりますよね?(Request.Form("SELECT")(i)といった形式) selectのoption数は動的に変わるので、いくつあるかはsubmitするまでわかりません。 コーディングは、こんな感じです。 <script language="JavaScript"> function DLFunc(f){ ・・・(略)・・・ f.target = ""; f.submit(); } </script> <script language="VBScript"> Sub FORM2_OnSubmit() ・・・(いろいろ処理)・・・ End Sub </script> <form name="FORM1" method="POST" action="DL.asp"> <select name="SELECT" size="5"> <option value="1">ファイル1</option> ・・・(option数は動的に変わる)・・・ </select> <input type="button" value="ダウンロード" OnClick="DLFunc(this.form)"> </form> <form name="FORM2" method="POST" action="Next.asp"> <input name="XXX"> ・・・(以下略)・・・ <input type="submit" value="実行"> </form>

  • フォームに入力された値を計算する方法

    私はまったくの初心者なのですがどなたか教えて下さい。 ●A,B,Cという3つの入力フォームがあるとします。 Aのフォームに入力された数字は「A÷20」という値に、 Bのフォームに入力された数字はそのまま、 Cのフォームに入力された数字は「C×10」という値に変更して、 (A+C)÷B×30という計算を行なって、その答えを Dのフォームへ表示するというシステムをcgiやphpで作りたいのです。 あれこれと試行錯誤しながら、javascriptでなんとか出来たんですが… どなたか教えて頂けませんか? function keiri() { a = document.takeko.case.value; a = eval(a); a = a / 20 b = document.takeko.time.value; b = eval(b); c = document.takeko.days.value; c = eval(c); c = c * 10 ans = (a + c) / c * 30; document.spec.result.value = ans; } <form name="takeko"> <input name="case" type="text" size="12"> <input name="time" type="text" size="12"> <input name="days" type="text" size="12"> <input name="button" type="button" onClick="keiri()" value="CLICK"> <input name="result" type="text" size="12"> <br></form>

    • 締切済み
    • PHP
  • 「型が一致しません」のエラーが出るのですが

    htmlファイルのformに入力されたものを、aspで処理したいのですが、 エラーが出て困っています。 html内には   <INPUT TYPE=text NAME=year VALUE="" SIZE=3>年   <INPUT TYPE=text NAME=month VALUE="" SIZE=3>月   <INPUT TYPE=text NAME=day VALUE="" SIZE=3>日 があり、 aspでは  YEAR=Request.Form("year")  MONTH=Request.Form("month")  DAY=Request.Form("day") ここで、フォームの"month"に6が入力されているときのみ、 YEARに+1925し、ほかの時には+1988したいんです。そこで Dim NEN NEN=YEAR     If month="6" Then       NEN=DateAdd("yyyy",NEN,1925)      Else     NEN=DateAdd("yyyy",NEN,1988)     End If としてみたのですが、「型が一致しません」というエラーが出てしまいます。 おそらく最初にYEARに入っている(フォームから戻ってくる)値が文字列なので、それでほかの代数?に入れても文字列として処理されてしまって、1925などの数字を足すことができないのだろうと思うんですが…それであっていますでしょうか。だとしたら、型を一致させたいんですがどうしたらいいでしょうか? ものすごく醜い感じになってしまっていると思います…すみませんが、 よろしくお願いします。

  • perl フォームの入力値のチェック セキュリティ

    フォームの入力値のチェック方法についての質問です。 名前、電話番号、Eメール、住所、注文商品、数量の入力フォームです。 入力値の取得は、ライブラリ「cgi-lib.cgi」を利用しています。 (以下perlのソース) #!/usr/bin/perl -T #入力値の取得 require 'cgi-lib.cgi'; &ReadParse(*form); $name = $form{'name'}; $tel = $form{'tel'}; $email = $form{'email'}; ・・・・以下同様の処理が続くだけなので省略 #サブルーチンを利用して入力値をチェック $name = &Wash($name); $tel = &Wash($tel); $email = &Wash($email); ・・・・以下同様の処理が続くだけなので省略 #サブルーチン部分 sub Wash{ if($_[0] =~ /^([^|><\/]+)$/){return $_[0];} elsif($_[0] eq undef){return "未入力";} else{return undef;} } (perlのソース ここまで) としてから、通常の処理に入るようにしてみたのですが セキュリティー上の問題があれば教えてください。 入力値から、コマンドやスクリプトが実行(XSS)されてしまう可能性はありますか? お願いします。 またメタ文字が見つかった場合の処理についてですが とりあえずよくわからないので。「undef」を返して いるのですが、他に良い方法があれば教えてください。

    • ベストアンサー
    • CGI
  • フォームから値を受け取る方法について

    例えば <form method="post" name="frm" action="mail.php">名前<input type="text" name="namae"><br> 住所<input type="text" name="jyuusyo"><br> 電話番号<input type="text" name="denwa"><br> 職業<input type="text" name="syokugyou"><br> 年齢<input type="text" name="nenrei"><br> <input type="submit" value="送信"><br> </form> というフォームがあるとして、それをmail.phpで 名前を取得する場合$_POST['namae']と書く以外で フォームの1番目の値を取得するというような書き方はあるのでしょうか? frmのパラメータの数(上記の場合5コ)というのは取得出来るのでしょうか? ご存知の方教えてください。お願いします。

    • ベストアンサー
    • PHP
  • フォームの値をまとめて取得する関数

    以下のようなフォームから値を取得するときに、(2)のような関数化したいと思っていますが、思うように取得できません。どこが問題かアドバイスください。 <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=sjis" /> <title>sample</title> </head> <body> <form action="" method="post"> 名前:<br /> <input type="text" name="name" size="30" value="" /><br /> コメント:<br /> <textarea name="comment" cols="30" rows="5"></textarea><br /> <br /> <input type="submit" value="登録する" /> </form> </body> </html> (1)問題なく表示できる <?php  foreach(${"_" . $_SERVER["REQUEST_METHOD"]} as $k=>$v) {   ${$k}=$v;  } echo "名前:$name<br>"; echo "コメント:$comment<br>"; ?> (2)表示できない? <?php function Request() {  foreach(${"_" . $_SERVER["REQUEST_METHOD"]} as $k=>$v) {   ${$k}=$v;  } } Request(); echo "名前:$name<br>"; echo "コメント:$comment<br>"; ?>

    • 締切済み
    • PHP
  • フォームから2つのCGIへ送信する場合

    申込フォームに記入してもらい、それをCGIフォームに送る場合に、2つの別々のCGIフォームに送ることはできるのですか。 例えば以下のように書けますか <form name="kuser" action="A.cgi" & B.cgi" method="post">

    • ベストアンサー
    • CGI