FORMのACTION属性を、選択型にはできないでしょうか?
<form action="" method=post>
例えばユーザーがフォーム内の項目でAを選択したら、actionの中をA.cgiに。
Bを選択したらB.cgiにするような事はできますか?
通常はactionの中は1つしか指定できないのですが、ユーザーの選択によっては、フォームの値をA.cgiに渡したり、B.cgiに渡したりできると良いと思っています。
CGIを利用しないと無理かもしれませんが、何か良い方法や便利なCGIがありましたら、教えて頂けると助かります。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
再び失礼します。
返信にあるような、プルダウンメニューなどから選択してCGIの送信先を変更する方法を取ることを前提とし、そのうえでCGIの調整を制限されるとなると、条件としてはクライアントサイドの処理に頼ることになりますが、クライアントサイドでHTMLに動的な変更(プルダウンやラジオボタンでaction属性を書き換える等)を加えるには、JavaScriptを利用することが必須になると思われます。
もしCGIに手を加えずに、またJavaScriptなどクライアントサイドスクリプトの使用を避けるとなると、それはHTMLを二つ用意して、それらのHTMLへのリンクでページ選択させて、フォーム送信の段階ではなく、入力ページを選択する段階で処理を振り分けてしまう方法しかないように思います。 HTMLの内容をクライアントサイドで動的に変更するには、JavaScriptなどブラウザ上で動くスクリプトが不可欠ですので、それがダメなら複数のHTMLを用意しておくのが無難でしょう。
もし上記方法以外で、クライアントサイドでの処理に頼らない方法となると、どうしてもCGIを改造する必要がでてくると思います。 クライアントサイドの環境にできるだけ左右されずに、スマートに処理をさせるのであれば、#2の方が指摘されているように、フォーム送信されたデータ内容に基づいてCGIの処理を割り振るような方法を取る必要があるでしょう。
あまり参考にならないかもしれませんが…
御回答ありがとうございます。
JavaScriptを使用しないで振り分けを行うのは、難しいようですね。
ひょっとしたら、何か良い方法があるかなーと思っていたのですが、CGIを私自身で改造するだけの知識もないので、仰る通りあらかじめページを2つ作成して、ユーザーさんに先に選んでもらう事にします。
>あまり参考にならないかもしれませんが…
いえいえ。
十分為になるアドバイスです。
2回もアドバイスをして頂き、ありがとうございます。
また何か分からない事がありましたら、御質問させて頂くと思いますので、その際はよろしくお願い致します。
No.2
- 回答日時:
ちょっとズレた回答ですが。
フォーム内で選択された内容に基づいてCGIの処理を割り振るという処理じゃダメなんですか?
クライアントサイドで処理を振ろうとするのは限界があるかと。
御回答ありがとうございます。
仰る通り、入力された値によってCGIで処理を割り振る事ができれば良いのですが、私自身そこまで改造する知識がないために、同じCGIを2つ(仮にAとBとします)設置して対応する事にしました。
そこで、ユーザーさんに入力してもらうフォームは1つにして、入力された値によって、AのCGIで処理させたりBのCGIで処理させたりできたら良いと思っています。
フォームをCGIで出力させて、そこでIF文を加える事によって、フォームの送信先を2つに振り分ける事はできるでしょうか?
HTMLをCGIで出力させるCGIは見た事がるのですが、フォームの送信先をどのように振り分けたら良いのか分かりません。
例えば、
<input type=radio name=sentaku value="0" checked>
<input type=radio name=sentaku value="1" >
があるとして、上を選択したらAのCGIへ送信。
下を選択されたら、BのCGIへ送信するようにしたいです。
CGIのカテゴリーで質問した方が良いかもしれませんが、どなたかアドバイスを頂けると助かります。
よろしくお願いします。
No.1
- 回答日時:
JavaScriptを使用しても良いのであれば、JavaScriptでフォームのaction属性を書き換えてやることで、実現できるように思います。
<html>
<head>
<title></title>
<script type="text/javascript">
<!--
function actcng(i){
document.f1.action=i;
}
//-->
</script>
</head>
<body>
<form action="#" name="f1">
<p><input type="radio" name="r1" value="A" onClick="actcng('A.cgi')">A.cgiへフォーム送信する項目<br>
<input type="radio" name="r1" value="B" onClick="actcng('B.cgi')">B.cgiへフォーム送信する項目<br>
<input type="submit" value="送信"></p>
</form>
</body>
</html>
上記ソースでは、name="f1"という属性をもつフォームのaction属性を、JavaScriptから書き換えます。
document.f1.action=i; //iは関数の呼び出し側から渡される引数
この部分の記述が、そのフォームのaction属性を書き換える処理にあたります。
ただ、JavaScriptでフォーム送信先を振り分けるとなると、閲覧側がJavaScriptを使える環境でなければ、狙い通りにフォーム送信ができない可能性もありますので、CGIの側で振り分けるように調整するか、あるいはもとよりフォーム送信先の異なる項目ごとにform要素を分けて、HTMLソースを記述する方が無難かもしれません。
参考になれば。
御回答ありがとうございます。
仰る通り、JavaScriptだとオフにしている方の場合は有効にならないので、別の方法をと考えていました。
最初に書いておくべきでした。すみません。
formの内容自体が長いので(入力項目が多い)、ので1ページに多数fromで区切るのはレイアウト的に良くないので、actionを選択できれば良いと思っていました。
Formの値の送信先をユーザーにプルダウンかラジオボックスで選択してもらい、値の送信先を振り分ける事はできないでしょうか。
これまでは必要なかったので、あまり詳しくは調べていなかったのですが、どなたか良いアドバイスがありましたら、よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript sessionStorageを調べています。 1 2023/06/20 12:41
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
静止画画像をクリックすると音...
-
トリミングで表示した画像をク...
-
サイトにコンテンツを並べる際...
-
HTMLで特定の文字だけ色を変え...
-
Google検索も終わりですか? グ...
-
テーブルの行を折りたたみたい...
-
HTMLで表をつくったのですがウ...
-
HTMLですCSSです この画像のよ...
-
css初心者 フレックスボックス...
-
角丸画像の背景色を透明にした...
-
WEBページを強制的に横画面で見...
-
htmlです 文字はタマで、 黒線...
-
webデザインの勉強で、HTML/CSS...
-
私、Paiza Cloudやっているのだ...
-
WEBサイトの作成で、imgタグに...
-
先日ウェブデザイン技能検定三...
-
X の仕様変更? 埋め込みフレー...
-
指定した演算を実施の結果を表...
-
指定した演算を実施の結果を表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
送信ボタン押下時に値が未入力...
-
submitをボタン以外にするには
-
複数のフォームを一括で送信す...
-
1アクションでPOST・GET、両方...
-
リンクをクリックした時にform...
-
<a href=**?***=***>をGET方式で
-
フォーム要素以外にもname属性...
-
type="hidden"を使って時刻を送信
-
長文のmailtoの使い方
-
URL パラメータを使ってフォー...
-
checkboxを「変更不可」にでき...
-
【html】)パスワード認証フォー...
-
送信フォームを2つ用意する方法
-
HTMLのフォームタグの送信順に...
-
mailtoについて
-
お問い合わせフォームの送信後...
-
CGI動作後に元のページに戻る方法
-
formタグのactionパラメータで...
-
GETをPOSTに変更したところ 送...
-
タブキーでなくエンターキーで...
おすすめ情報