• ベストアンサー

CGIのボタンの処理について

CGIのフォームにチェックボックスがあってボタンを押すとある処理をさせたいのですが、 <form action="○○.cgi" method="post"> を使って新たなCGIを呼び出さずにフォームのCGIで処理をし、結果を反映させたいのです。もし方法をご存知の方がいましたら教えて欲しいのでよろしくお願いします。 <-------cgiソースの一部----------> print "<input type=\"checkbox\" name=\"re_$n\" value=\"$userdata[$i]\">"; print "<input type=\"button\" value=\"処理\">"; ボタンを押した時に処理をしてすぐさまリロードして同じページに結果を反映させたい!

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

  • ベストアンサー
  • panick
  • ベストアンサー率40% (26/64)
回答No.3

No.2 の続きです 単純にメッセージを一時的に表示をさせないようにするだけではなく、ユーザーデータファイルにある各ユーザー別のメッセージ・データをユーザー自ら削除するならば、そのように CGI を修正する方が一般的だと思えます。 たとえば、掲示板の投稿をユーザー自らが削除するイメージではダメでしょうか。

rinkey
質問者

お礼

アドバイスどうもありがとうございます。 そうですね、掲示板のイメージで大丈夫でした。掲示板をあまり使った事なかったんで気づきませんでした・・・ お世話になりました。

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

その他の回答 (2)

  • panick
  • ベストアンサー率40% (26/64)
回答No.2

質問の説明からは何をしたいのか分からないのですが。。。 ><form action="○○.cgi" method="post"> >を使って新たなCGIを呼び出さずに ここの「呼び出さずに」は「呼び出して」の間違いではありませんか? >フォームのCGIで処理をし、結果を反映させたい >CGIのフォームにチェックボックスがあってボタンを押すとある処理をさせたい >ボタンを押した時に処理をしてすぐさまリロードして同じページに結果を反映させたい たとえば、CGIのアンケート・フォームのようなものはダメなんでしょうか?

rinkey
質問者

補足

 すみません、説明不足でした。 ユーザーデータファイルにメッセージが保存されていて、SSIを使ってアクセスしてきたユーザー毎にファイルを読み取ってメッセージを表示させるようにしてあるんですね。このメッセージをユーザーの手動で消す方法として、チェックボックスを用意しました。  チェックボックスにチェックを入れてボタンを押すとユーザーデータファイルのメッセージを削除してファイルを更新し、ページをリロードしてメッセージを消す、という風にしたいと考えているのですが・・・ どーでしょうか?

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

 多分POSTせずに同じ画面(ページ)内で処理をさせたいという事なんだろうけど、それだとJavaScriptを使わないとできないね。  残念ながら、CGIというのは最終的にプログラムが動作した結果をHTMLで返すものだ。なので、結果(HTML)をCGIで変える、というのは新たなCGI(たとえそれが自分自身でも)を呼び出す事になる。

rinkey
質問者

お礼

 説明が不足していましたがご親切にありがとうございました。掲示板の削除機能のイメージで出来そうなので頑張ってみたいと思います。

rinkey
質問者

補足

 そうですか~。 ではボタンを押したらってことをJavaScriptで書いて処理をPerlで書くのって出来ます 処理が終わったらJavaScriptでリロードしてページ更新するみたいな。

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

関連するQ&A

  • 複数ボタンのvalueを送れない

    ひとつのフォームで複数のボタンを使う方法を探していたら 次のような方法があるとのことでした。 <form method="post" name="MyForm"> <INPUT TYPE="BUTTON" VALUE="aaa" onClick="MyForm.action='hoge.cgi';MyForm.submit();"> <INPUT TYPE="BUTTON" VALUE="bbb" onClick="MyForm.action='hoge.cgi';MyForm.submit();"> </form> これで、ボタンによってVALUEを渡せるのかと思いきや、 飛んでいきませんでした・・・ 複数ボタンを用意して、ボタンによってその VALUE値を渡す方法がありませんでしょうか?

    • ベストアンサー
    • CGI
  • javascriptでボタン作成

    こんばんわ,htmlでボタンを表示してcgiを動かすコードを書いています. 現在のhtmlのコードです.my_mkdir.cgiはディレクトリを2つ作るcgiです. <form action="/cgi-bin/my_mkdir.cgi" method="get" target"_self">   <input type="hidden" name="$args[0]">   <input type="hidden" name="$args[1]">   <input type="submit" name="button" value="PowerON"> </form> ボタンを押す→cgi実行の流れまではよいのですが,cgiでhtmlのコードがないとブラウザ上でエラーがでます. 対策として,cgiコード(python)でこのようにリロードするようにして回避しています. print "Location: リロードするURL\n\n" これでは不格好なので,ボタンを押す→cgi実行を可能にするにはjavascriptだとできるかもしれないと聞きました. javascriptでこのようなことは可能でしょうか?hiddenで渡しているパラメータはどのようにすればよいのでしょうか? html・javascript共に初心者です.よろしくおねがいします.

  • CGIプログラムでのボタン表示のさせかた

    print "<form action=\"$script\" method=\"POST\" target=\"_blank\">\n"; print "<input type=hidden name=mode value=note>\n"; print "<input type=hidden name=job value=blank>\n"; print "<input type=submit value="説明表'>"</form>\n"; print "<form action=\"$home\" method=\"POST\" target=\"_blank\">\n"; print "<input type=hidden name=mode value=_top>\n"; print "<input type=hidden name=job value=blank>\n"; print "<input type=submit value='トップ'></form>\n"; というCGIプログラムの文章があるのですが、 上記の記述で実行すると、 「説明表」ボタンと、「トップ」ボタンが縦に並んで表示されてしまいます。 これを、横に表示させるようにするには、 どのように変更すばいいのでしょうか? 参考になるかわかりませんが、「説明表」をクリックして表示される文章は、 他のCGIプログラムの中に記述されています。

    • ベストアンサー
    • CGI
  • 同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変

    同じフォーム内で、押下するボタンによって、飛び先のページ(cgi)を変えたい。 例えば、 以下のように、同じフォーム内に2つのボタンを用意し、 片方のボタンをクリックすると、現在のページ(aaa.cgi)へ戻り、 もう片方のボタンをクリックすると、別のページ(bbb.cgi)へ飛ぶようにしたい。 なお、何れのボタンもサブミットしたい。 ↓(aaa.cgi)================================= : <form name="frm1" action="???" method="post"> <input name="t1" type="text"> <input name="t2" type="text"> : <input name="b1" type="button" onClick="submit();"> <input name="b2" type="button" onClick="submit();"> : </form> : ↑(aaa.cgi)================================= 良い方法はないでしょうか。 ご存知の方、ご教授ねがいます。 よろしくお願いします。  

    • ベストアンサー
    • Perl
  • 送信ボタン毎でそれぞれの処理へ

    携帯用サイトを作ろうとしていますが、 ○の送信ボタンを押した場合と×の送信ボタンを押した場合で処理を変えたいと思っています。このときいくつかのパラメータも送信します。できるだけボタンを押して画面を進ませたいと思っていますが良い方法はありませんでしょうか? 携帯用ですのでJavaスクリプトが使えないと思っています。 <form> <input type=hidden value="post.php"> <input type=radio value=0 checked> 30才未満 <input type=radio value=1> 30歳以上 <textarea></textarea> <input type=button value="○→"><input type=button value="×→"> </form>

    • ベストアンサー
    • PHP
  • ボタン別でフォームの送信先を変えたい

    同じ場所に3つある今のフォームを1つにまとめたいのですが、 「ラジオボタン」でやるのではなく「submitボタン」によって送信先の振り分けはできないのでしょうか? CGIなどを使って一旦クッションを置くのは問題ないです。何か参考になるサイトさんとかありましたら教えてください。 <form action="1.php" method="get" class="form" target="a" name="1"> <input type="hidden" name="s" value=90 /> <input type="hidden" name="t" value="e" /> <input type="text" name="moji" value="" size="8" /> <input type="submit" name="button" value="検索" /> </form> <form action="http://e.php" method="get" name="2" target="a"> <input type="hidden" name="test" value=et /> <input type="text" name="77" value="" size="8" /> <input type="submit" value="検索2" class="button" /> </form> <form action="http://8.cgi" method="get" target="a"> <input type="text" size="8" name="q" value="" /> <input type="submit" value="検索3" class="button" /> <input type="hidden" name="sut" value="JJ" /> </form>

    • ベストアンサー
    • CGI
  • 1つのsubmitボタンで2つのCGIを呼び出すことは可能ですか?

    今は、htmlで <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body> <form action="abc.cgi" method="get"> 以下省略 <input type="submit" value="送信"> </form> <form action="xyz.cgi" method="get"> 以下省略 <input type="submit" value="受信"> </form> </body> </html> という感じで書き、2つのボタンで個々に2つのCGIを呼び出していますが、 これをメールの送受信のように、1つのボタンで2つのCGIを呼び出すことは可能なのでしょうか。 教えてください。お願いいたします。

    • ベストアンサー
    • CGI
  • onclickで複数のボタンで対応したCGIにデータを送りたいのですが。

    下記のような感じで、 1.画像追加ボタンを押すと別ページ(b.cgi)に飛んで登録が終わったらまたこちらに戻ってきて、登録が押されるとそのまま登録処理(a.cgi)になる。 2.画像追加がされていなくても登録が押されるとそのまま登録処理をする。 (1.2.ともform内の情報はhiddenですべて送ります。) こんな動きをさせたいのですが、参考サイトなどをみてもこういう動作をしているところがなくて丸3日悩んでいます。 onclick=submit の記述とJavascriptの書き方が問題だとは思うのですが煮詰まってしまいました。 皆様には初歩的な質問かもしれませんがどうぞよろしくお願いします。 <form method="post" enctype="multipart/form-data"> <input type="text" name="Title" value="" size="140"> <input type="text" name="Body1" value="" size="140" style="ime-mode: active;"> <input type="button" value="画像追加" onclick="submit(document.gazouform)"> <input type="button" value="登録" onclick="submit(document.tourokuform)"> <form action="a.cgi" method="post" enctype="multipart/form-data" id="tourokuform"> </form> <form action="b.cgi" method="post" enctype="multipart/form-data" id="gazouform"> </form>

  • <form>タグに2つのボタン

    <form>タグで2つのボタンを表示させ、以下のようにそれぞれのボタンで フィールドに別の値を入れて送信させることはできますでしょうか? できればHTMLで、できなければJavaScriptでできますでしょうか? ・button1を押したときは  フィールド「CASE」に1を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="1"> ・button2を押したときは  フィールド「CASE」に2を入れて送信、  HTMLで書くと、<input type="hideen" name="CASE" value="2"> ===== HTML ====================== <form action="test.cgi" method="post"> <input type="text" name="text1"> <input type="submit" value="button1"> <input type="submit" value="button2"> </form> 宜しくお願いします。

    • ベストアンサー
    • HTML
  • チェックボックス/ラジオボタン

    CGIを勉強中です。 まだ無料で配布されているCGIをカスタムするくらいしかできないレベルです。 今度やりたいのが、チェックボックス/ラジオボタンどじらでもいいのですが、 こちらに送られてくるメールフォームで選択されているものは仮に「Y」 選択されていないものは「N」という形で受け取りたい場合はどのように したらできるのでしょうか? よろしくお願いします。 <input type="checkbox" name="みかん" value="みかん" />みかん <input type="checkbox" name="りんご" value="りんご" />りんご <input type="checkbox" name="メロン" value="メロン" />メロン <input type="radio" name="みかん" value="みかん">みかん  <input type="radio" name="りんご" value="りんご">りんご

    • ベストアンサー
    • CGI
このQ&Aのポイント
  • NECノートパソコンでWindows10アップデート後、復元ポイントが作成されていない問題が発生しています。
  • アップデートは成功し、手動でも復元ポイントを作成できますが、自動で作成されない状況です。
  • ハードディスクには十分な領域が残っており、設定に問題がある可能性があります。設定の確認をお願いします。
回答を見る

専門家に質問してみよう