FORMアクションでのパラメータに'+'や'-'などの特殊記号は使えるのでしょうか?
JavaScriptの場合、'+'は文字列の連結になって
しまうのですが、回避策などあれば教えてください。

よろしくおねがいします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

FORMアクションのパラメータということは、inputタグのvalue値のことでしょうか?


それとも<form action=...>のところでファイル名の後に「?abc=def」のような形でパラメータを付けることを考えてるんでしょうか。

inputタグのvalue値であれば+も-も問題なく使えます。サーバに送信される際にそのままでは使えない文字も自動的にURL encodeされて送られますから、CGIプログラム側で通常通りdecodeしてあげればOKです。
ただ、formのaction=...のところにパラメータを付けるんであれば、その部分のパラメータはURL encodeの対象外のため、「-」はともかく「+」はURL encodeの空白と誤認識される危険があるため、「%2B」というように「"%"+その文字のASCIIコード(16進数)」の形に変換してやる必要があります。

そもそもformタグが使えるんなら、わざわざaction=の後ろにパラメータを書かなくても、inputタグをhidden属性で使ってvalueを指定した方が、面倒なことを考えないで済む分楽だと思いますけど…。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q
の中に さらに
があるときのSUBMITボタンについて

今、

<FORM ACTION="aaa.asp" METHOD="POST" Name="form1">
<input type="SUBMIT" value="ボタン1">

<FORM ACTION="bbb.asp" METHOD="POST" Name="form2">
<input type="SUBMIT" value="ボタン2">
</FORM>

</FORM>


としていて、ボタン2を押すとbbb.aspに
飛んでほしいのでに、aaa.aspに飛んでしまいます。
こういう場合どのようにすればよいのでしょうか?

それぞれのボタンは hidden の値をそれぞれの
フォームの中の値を渡したいので
どうしてもSubmitがいいのです。

Aベストアンサー

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAMPLE</title>
<meta http-equiv="Content-Type" content="text/html;charset=EUC-JP">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script language="JavaScript" type="text/javascript">
<!--
//<クリックした時に実行される関数>
//*** 英和辞書
function func1(form){
document.form1.MT.value =form.TXT.value;
document.form1.submit();
}
//*** サーチ
function func2(form){
document.form2.MT.value = form.TXT.value;
document.form2.submit();
}
//-->
</script>
</head>

<body>
<!---実際に画面表示されるフォーム--->
<form>
<input type="text" name="TXT" value="Congratulation" size="40"><br>
<input type="button" onClick="func1(this.form)" value="Eng-JP">
<input type="button" onClick="func2(this.form)" value="goo">
</form>

<!-- 辞書用の仮想フォーム -->
<form name="form1" method="GET"
action="http://dictionary.goo.ne.jp/cgi-bin/dict_search.cgi">
<input type="hidden" name="MT">
<input type="hidden" name="sw" value="0">
</form>

<!--- サーチ用の仮想フォーム --->
<form name="form2" method="GET"
action="http://search.goo.ne.jp/web.jsp">
<input type="hidden" name="MT">
</form>

</body>
</html>

No.4の回答者_Leoですが、分かりにくかったと思いますので、
全ソースのサンプルを記載しますので、参考にして下さい。
No.6のyou111111さんと同じく、JavaScriptを使用しています。
下記をそのまま、新規のhtmlにコピペで使用できますよよヨ。
本来のサイトが使用しているテキストボックス名は'MT'です。
-------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN">
<!---gooはEUCキャラクタを使っています--->
<html>

<head>
<title>SAM...続きを読む

Qformタグのactionパラメータで自分自身を指定

既存のHTMLプログラムを管理することになりました。
xxxx.phpというファイルのなかで、
<form name="xxx_form" method="post" action="xxxx.php">
という感じで、xxxx.phpのなかで同名のファイルをactionに指定しているのですが、最初に開いたxxxx.phpと、actionで開いたxxxx.phpでは表示内容が異なっているのです。(具体的には、初めとaction後ではリストの内容等が更新されている。)
ソースを表示してみると、確かに異なっています(リスト内容の指定部分が異なっている)。しかし、アドレスは同じです。
この動作の仕組みが分かりません。
分かる方、ご指導よろしくお願いします。

Aベストアンサー

#1です。

勘違いしているかもしれないので、補足です。

>ソースを表示してみると、確かに異なっています

これはサーバー上でソースを見ていませんか?
(ブラウザで右クリック→ソースを見る、など)
それならば、単にPHPが生成したHTMLを見ているだけで、もとのPHPを見ていることにはなりませんよ。

私が言ったのはもとのPHPファイルの記述のことです。

Qformの入れ子の回避方法

アドバイス下さい。
<form method="post" name="addForm" id="addForm" action="aaa.php">
<input type="text" name="textA" id="textA">
<form method="post" name="uploadFormA" id="uploadFormA" enctype="multipart/form-data" action="aaa.php">
<input type="text" name="text1" id="text1">
<input type="file" name="upload_fileA" id="upload_fileA">
<input type="button" value="アップロード">
</form>
<form method="post" name="uploadFormB" id="uploadFormB" enctype="multipart/form-data" action="aaa.php">
<input type="text" name="text2" id="text2">
<input type="file" name="upload_fileB" id="upload_fileB">
<input type="button" value="アップロード">
</form>
<form method="post" name="uploadFormC" id="uploadFormC" enctype="multipart/form-data" action="aaa.php">
<input type="text" name="text3" id="text3">
<input type="file" name="upload_fileC" id="upload_fileC">
<input type="button" value="アップロード">
</form>
<input type="text" name="textB" id="textB">
<input type="submit" value="送信">
</form>
のような、formが入れ子になってしまっているformがあります。
これを回避する方法を教えていただきたいです。
条件としては、
・見た目はこの順番がいい。
・javascript、CSS等なんでも良いです。
・各「アップロード」ボタンで、text1,2,3,4、upload_fileA,B,C,Dを送信、「送信」ボタンでtextA,Bを送信したい。
以上、お願いいたします。

アドバイス下さい。
<form method="post" name="addForm" id="addForm" action="aaa.php">
<input type="text" name="textA" id="textA">
<form method="post" name="uploadFormA" id="uploadFormA" enctype="multipart/form-data" action="aaa.php">
<input type="text" name="text1" id="text1">
<input type="file" name="upload_fileA" id="upload_fileA">
<input type="button" value="アップロード">
</form>
<form method="post" name="uploadFormB" id="uploadFormB" enctype="multipart/form-dat...続きを読む

Aベストアンサー

再び#3です。
>ページの左上から何ピクセル
ページの左上ではなく、
positiopn:relative;を指定した包括ブロック の左上からの位置を指定します。

#3でいえば <div id="#F">の前に何を追加しても、
CSS(位置指定)の変更の必要はありません。

Qformの入れ子を回避したい

http://up2.viploader.net/pic/src/viploader1125909.bmp
画像のように、色分けした枠ごとに送信先を変えたいのですが、上手い方法を教えてください。「変更」と「詳細」は思惑通り行くのですが、チェックの項目を、下の「削除」と「メール作成」で扱おうとすると
上手くいきません。

<チェックボタンのform>
<変更のform></変更のform>
<詳細のform></詳細のform>
</チェックボタンのform>
のようにしたいです。
JavaScriptはわからないので、出来ればソースも載せて頂けたらうれしいです。

Aベストアンサー

<form>の入れ子は出来ません。

> 黒、赤、緑の送信先を別にすることも可能でしょうか?
黒、赤、緑がなんなのかわかりませんが、
押されたボタンや選択されたチェックボックスに応じて
header("Location: kuro.html");
などを出力すれば可能です。

Qformタグで発生する変な改行の回避方法

こんにちわ。
formタグで変な改行が出ちゃいますよね。
アレの回避方法をご存知の方いらっしゃいませんでしょうか?
いらっしゃいましたらご一報いただけないでしょーか。
お手数ですがよろしくお願いいたします。

Aベストアンサー

わかります、わかりますそれ。
deagleさんと同じ解釈でしょうが、
deagleさんの方法のほかには<FORM>タグを<BODY>の外で記述しちゃうと消えます。
<html>
<form>
<body>
</body>
</form>
</html>
という具合です。
かなり強引ですが、私も使っています。
ちゃんと動くはずです。


このカテゴリの人気Q&Aランキング

おすすめ情報