• 締切済み

ユーザ入力が表示されない原因を教えてください。

CGI初心者です。基礎を勉強しただけなのでまだまだ理解が足りないせいかもしれません。現在データ検索のカスタマイズをしています。 ユーザが入力したものを検索条件の一部にと考えているのですが、なかなかできません。どこがいけないのかおしえていただけないでしょうか? インプット print "<P>● 業 務 <input type=text name=P2 size=30>\n"; アウトプット print "<td valign=top nowrap><font color=\"$t_color\">■</font> <B>業 務</B><br>\n"; print "<select name=P2 >\n"; print "<option value=\"99\" selected>指定なし\n"; $i =99; foreach $line (@lines) { ($name,$value) = split(/\,/,$line); chop; if ($name ne '') { $i++; $names{($name)[0]}++; $n++; } } foreach (keys %names) { print "<option value=\"$_\">[$_]\n"; } print "</select></td>\n"; と表記してます。クッキーを利用して反映できるようにはしていて、 入力したものを、登録内容の確認や、削除するときやメンテするときにはちゃんと表示されています。

  • bori
  • お礼率67% (40/59)
  • Perl
  • 回答数1
  • ありがとう数3

みんなの回答

回答No.1

ちょっと質問がわかりにくいのですが、もし、<input>要素で入力された内容がうまくCGIで取得できないことをいっているならば、<input>要素のname属性と、<select>要素のname属性がかぶっている(name=P2)のが原因ではないでしょうか。CGIでうまくやれば取れないこともないですが、name属性は別々にしておくべきだと思いますよ。

関連するQ&A

  • テキストエリアの入力に関して

    テキストエリアの入力に関して 教えて下さい。 部分的な抜粋で申し訳ありませんが、以下のようにテキストエリアをダブルクリックで 時間を表示させるような"javascript"を記述しましたが、その際に、テキストにカーソル を合わせても、そもそもの入力できなくなってしまいました。 エリアは表示されるものの、カーソルを合わせても入力モードに変わらない。。 《内容》 print("<TR>\n"); print("<TD NOWRAP><FONT SIZE='2.5'><B>【備  考】</B></FONT></TD>\n"); print("<TD colspan='2'>\n"); print("<div id='target'>\n"); print("<select onchange='test(1)' onblur='test(1)'> <option value=' ' style='background-color:#3366FF; color:#FFFFFF'>  <option value=' ~ 09:30' style='background-color:#FFFFFF; color:#3366FF'>~ 09:30 <option value=' ~ 10:00' style='background-color:#3366FF; color:#FFFFFF'>~ 10:00 <option value=' ~ 10:30' style='background-color:#FFFFFF; color:#3366FF'>~ 10:30 <option value=' ~ 11:00' style='background-color:#3366FF; color:#FFFFFF'>~ 11:00 <option value=' ~ 11:30' style='background-color:#FFFFFF; color:#3366FF'>~ 11:30 <option value=' ~ 12:00' style='background-color:#3366FF; color:#FFFFFF'>~ 12:00 </select>\n"); print("<input size='20' type='text' name='pm_note' id='pm_note' value='$out_time' ondblClick='test(0)' style='width:100%;'> \n"); print("</div>\n"); print("</TD>\n"); print("<TD></TD>\n"); print("<TD></TD>\n"); print("</TR>\n");

    • ベストアンサー
    • HTML
  • セレクト表示方法について

    DBのトップ画面で選択画面の表示項目を1つだけ表示表示して矢印で開けるようにしたいのですが書き換え方がわかりません。 一応、表示部分の↓に書いて見ました sub html { # 表示開始 &header; print <<"EOM"; <table bgcolor="#B5B5B5" cellpadding=4 cellspacing=0 border=0 width="45"> <tr><td align="center"> <A HREF="$homepage" STYLE="text-decoration:none;color:black">戻る</A> </td></tr> </table> <center> <hr width="400" noshade> <font color="$t_color" size="$t_size" face="$t_face"><b>$title</b></font> <hr width="400" noshade> <P> <table><tr><td> $TopMessage </td></tr></table> <form method="POST" action="$script"> <input type=hidden name=mode value="search"> <table border=0 cellpadding=15><tr> EOM # 配列1 $size1 = @part1 + 1; print "<td valign=top><font color=\"$t_color\">■</font> <B>テス</B><br>\n"; print"<select name=P1 size=\"$size1\">\n"; print "<option value=\"99\" selected>指定なし\n"; foreach (0 .. $#part1) { print"<option value=\"$_\">$part1[$_]\n"; } print "</select></td>\n"; print "</tr></table>\n"; print "<font color=\"$t_color\">■</font> <b>キーワード</b> (任意)<br>\n";

    • 締切済み
    • CGI
  • セレクトBOXをプルダウン形式にしたいのですが・・・

    CGI初心者です。セレクトボックスで表示しているものをプルダウン形式にしたいのですが、どこを直したらいいのか教えてください。 ちなみに、いまのスクリプトは $size1 = @part1 + 1; print "<td valign=top nowrap><font color=\"$t_color\">■</font> <B>ユーザ名</B><br>\n"; print "<select name=P1 size=\"$size1\">\n"; print "<option value=\"99\" selected>指定なし\n"; foreach (0 .. $#part1) { print "<option value=\"$_\">$part1[$_]\n"; } print "</select></td>\n"; です。

    • ベストアンサー
    • CGI
  • logファイルをひらいての処理の仕方を教えてください。

    データベース検索のperlをカスタマイズ中です。 ユーザが入力したものを、検索条件のひとつにしたいのですが、表示されません。 インプットしたものはlogファイルに書き込まれるので、それを開いて反映させればいいのだろうということまでは、なんとかわかるのですが、どのように表記していいのか・・・今はない知恵を絞ってこのように表記しているのですが。 if (!open(FD,"$logfile")) { &error(0); } @lines = <FD>; $cnt = @lines; close(FD); print "<select name=P2 >\n"; print "<option value=\"0\" selected>指定なし\n"; $i =0; foreach $line (@lines) { ($no,$sub,$com1,$com2,$com3,$p1,$p2,$p3,$p4) = split(/\,/,$line); chop; if ($p2 ne '') { $i++; $p2s{($p2)[0]}++; $n++; } } foreach (keys %p2s) { print "<option value=\"$_\">$_\n"; } print "</select></td>\n";

  • プルダウン選択によるボタンの表示/非表示に関して

    教えて下さい。 下のように、ONCHANGEイベントで、プルダウンにて選択された内容を、別のテキスト ('text')エリアに表示させる記述をしましたが、今度は選択された内容によって、 ボタンの表示/非表示をコントロールしたいと考えています。 実際には、下の記述で、'BBB'が選択された場合のみ、***よりしたの"日"ボタンを 表示させたいと考えています。 どのように記述すれば良いでしょうか。。。 教えて頂きたいと思います。 <SCRIPT LANGUAGE="JavaScript"> function ChangeSelection(form, selection,num) { v = selection.value; form.text.value = v; } <FORM NAME="fm_a" print("<TD><input name='text'></input>\n"); print("</TD>\n"); print("<TD><select name='am_note' ONCHANGE='ChangeSelection(this.form, this)'>\n"); print("<option value=''></option>\n"); print("<option value='AAA'>AAA</option>\n"); print("<option value='BBB'>BBB</option>\n"); print("<option value='CCC'>CCC</option>\n"); print("</select>\n"); print("</TD>\n"); ************************************************************** print("<TD>\n"); print("<input name='Cal' type='button' value='日'\n"); print("</TD>\n");

  • フォントサイズを変えるには?

    print "<table width=600 border=0 align=center> <tr> <td align=center>\n"; print "<br><br><font size='2' color=$t_color><small>*** 編集・削除用 ***</small></font><br>\n"; print "<select name=mode>\n"; print "<option value=usr_edt>編集\n"; print "<option value=usr_del>削除</select>\n"; print "パスワード <input type=password name=pwd size=4 maxlength=8>\n"; print "<input type=submit value=\"送信\"> </form> </td> </tr> </table>\n"; 上の、「編集」と「削除」という文字のサイズを変えたいのですが、 どうすればいいのですか? <font size='2'>とか入れたけど、変わりませんでした。 (入れた場所が悪かったのかな??) お願いします。

    • ベストアンサー
    • CGI
  • プルダウン選択後の手入力優先に関して

    教えて下さい。 プルダウンを選択し、選ばれたものを別テキストに表示するような事を したいと考えています。 現在、下記のように記述をしており、上記の内容は実現できていますが、 その際に、表示される側のエリアに手入力を可とし、入力があった場合は、 javasriptの選択項目を無効(手入力を優先)としたいと考えています。 どのような方法があるでしょうか。。。 <SCRIPT LANGUAGE="JavaScript"> function ChangeSelection(form, selection) { v = selection.value; form.text_note.value = v; } </SCRIPT> print("<TD NOWRAP><FONT SIZE='3'><B>【行  先】</B></FONT></TD>\n"); print("<TD NOWRAP SIZE='30'><input name='text_note' VALUE=$out_goto></input>\n"); //$out_gotoにはphpにてテーブルから読み込まれた情報が初期値として格納されています。 print("</TD>\n"); print("<TD><select name='am_note' ONCHANGE='ChangeSelection(this.form, this)'>\n"); print("<option value=' '></option>\n"); print("<option value='自席' >自席</option>\n"); print("<option value='離席' >離席</option>\n"); print("</select>\n"); print("</TD>\n"); よろしくお願いします。

  • プルダウンの初期値に関して2

    前の質問と同じ内容となってしまいますが、プルダウンの前回値が どうしても取得できません。。。 ソースは以下のように記述し、selected属性を用いて初期値に前回値 を指定しているような格好をとっています。 何か記述が間違っているのでしょうか。。。。 print("<TR>\n"); print("<TD NOWRAP><FONT SIZE='3'><B>【行  先】</B></FONT></TD>\n"); print("<TD NOWRAP SIZE='30'><input name='text1' VALUE=$out></input>\n"); print("</TD>\n"); print("<TD><select name='am_note' ONCHANGE='ChangeSelection(this.form, this)'> <option value=' '                      <?php if('$out_goto'==' '){ echo' selected=?'selected?''; } ?>   <option value='自席' style='background-color:#FFFFFF; color:#3366FF' <?php if('$out_goto'=='自席'){ echo' selected=?'selected?''; } ?> 自席 </select>\n"); print("</TD>\n"); print("</TR>\n"); 教えて下さい。

    • ベストアンサー
    • PHP
  • 日付取得のJavascriptの動作不良に関して

    教えて下さい。 下記のソースの中にある日付をテキストへ表示するJavascriptがどうしても動き ません。 phpとの兼ね合いがあるのかもしれませんが、どこが悪いのか掴めず。。。 日付のJavascript は http://www.kanaya440.com/contents/js/calendar/index.html よりダウンロードしてきてあり、ソース内に記述してあります。 恥ずかしながら、どこに不具合があるのかをご指摘頂ければ幸いです。 よろしくお願いします。 《ソース》 <?php $hiduke = "'mm/dd'"; ?> <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> ********* ここにダウンロードしたカレンダーJavascript を貼る </SCRIPT> <TITLE>行動予定登録</TITLE> <META Http-Equiv="Content-Type" Content="text/html;charset=shift-jis"> </HEAD> <BODY> <CENTER> <FORM ACTION="zkoudou_update2.php" METHOD="POST"> <INPUT TYPE="hidden" NAME="item" VALUE="2"> <TABLE BORDER=1 WIDTH="70%" CELLPADDING="10" CELLSPACING="0"> <TR> <TD ALIGN="center"> <TABLE BORDER="0" WIDTH="100%"> <TD WIDTH="20%"> <FONT SIZE="2"> </FONT> </TD> <TD WIDTH="60%" ALIGN="center"> <B><U>行動予定登録</U></B> </TD> <TD WIDTH="20%" ALIGN="right"> <FONT SIZE="2">戻 る</A></FONT> </TD> </TABLE> <FONT COLOR="#FF0000"><B></B></FONT><BR> <?php print("<TABLE BORDER=0 CELLPADDING='5'>\n"); print("<TR>\n"); print("<TD NOWRAP WIDTH='20%'><FONT SIZE='2'><B>【名前】</B></FONT></TD>\n"); print("<TD WIDTH='60%'></TD>\n"); print("<TD WIDTH='20%'>\n"); print("</TD>\n"); print("</TR>\n"); print("<TR>\n"); print("<TD NOWRAP WIDTH='20%'><FONT SIZE='2'><B>【内線NO】</B></FONT></TD>\n"); print("<TD WIDTH='70%'></TD>\n"); print("<TD WIDTH='10%'>\n"); print("</TD>\n"); print("</TR>\n"); print("<TR>\n"); print("<TD NOWRAP><FONT SIZE='3'><B>【行  先】</B></FONT></TD>\n"); print("<TD NOWRAP SIZE='30'>\n"); print("</TD>\n"); print("</TR>\n"); print("<TR>\n"); print("<TD NOWRAP><FONT SIZE='3'><B>【戻り時間】</B></FONT></TD>\n"); print("<TD>\n"); *********** このJavascripit が動かない。。。。 print("<input type='text' name='p1' id='p1' size='30' maxlength='10'> <input name='Calendar' type='button' value='日付セット' onClick='wrtCalendar(event,this.form.p1,$hiduke)'>\n"); print("</TD>\n"); print("</TR>\n"); print("<TR>\n"); print("<TD>\n"); print("</TD>\n"); print("<TD><FONT SIZE='2'> ※ 戻り時間はダブルクリック\n"); print("</FONT></TD>\n"); print("</TR>\n"); print("</TABLE>\n"); print("<INPUT TYPE='submit' NAME='exec' VALUE='登録する'>\n"); print("<INPUT TYPE='hidden' NAME='no' VALUE='$out_no'>\n"); print("<INPUT TYPE='hidden' NAME='busyo' VALUE='$out_busyo'>\n"); ?> </TD> </TR> </FORM> </TABLE> <FONT SIZE=2><I> Copyright (C) 2001-2004 All right reserved by CGI KON </I></FONT> </CENTER> </BODY> </HTML>

  • 検索結果の表示形式を表形式にしてだしたいのですが・・・

    CGI初心者です。データベース検索のCGIをフリーからカスタマイズをかけて利用を試みています。今の状態では、検索結果が、 print "<LI><a href=\"$script?mode=view&no=$no\">$sub</a>\n"; 状態で表示されます。 が、これをメンテするときの一覧状態にしたいのです。 メンテ時の表示プログラムは、 # 管理画面を表示 &header; $count = @lines; print "<center>\n"; print "<form action=\"$script\" method=\"$method\">\n"; print "<input type=hidden name=pass value=\"$in{'pass'}\">\n"; print "<input type=hidden name=mode value=\"admin\">\n"; print "<input type=hidden name=action value=\"delete\">\n"; print "<table border=1 cellspacing=1><tr>\n"; print "<th>削除<th>料理名<th>食種<th>食材<th>調理法<th>コメント</tr>\n"; foreach $line (@lines) { local($no,$sub,$com,$p1,$p2,$p3) = split(/<>/, $line); $com =~ s/<br>/ /g; $com =~ s/</&lt;/g; $com =~ s/>/&gt;/g; if (length($com) > 60) { $com = substr($com,0,58); $com = "$com" . '..'; } print "<tr><th><input type=checkbox name=del value=\"$no\"></th>"; print "<td><b><a href=\"$script?mode=mente&no=$no\">$sub</a></b></td>"; print "<td>$part1[$p1]</td><td>$part2[$p2]</td><td>$part3[$p3]</td>"; print "<td><small>$com</small></td></tr>\n"; } print "</table><P>\n"; です。どうしたら、メンテ時のような一覧の表形式で表示できるのでしょうか? あと、あまりに言語がわからないので、なにか良い参考書及びHPがあれば教えてください。

    • 締切済み
    • CGI