• ベストアンサー

引数について

cockyの回答

  • ベストアンサー
  • cocky
  • ベストアンサー率57% (232/402)
回答No.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を指定した方が、面倒なことを考えないで済む分楽だと思いますけど…。

関連するQ&A

  • formによるパラメータ送信がうまくいきません

    こんばんは。 HTML初心者です。 formによるパラメータを送信しようと考えているのですが、 送信方法によってパラメータが異なってしまい、困っています・・・。 以下のようなformを使って、パラメータをpostしています。 <form name="form1" action="http://xxx/xxx/xxx" method="post"> <input type="text" name="text1"> <input type="submit" value="sousin" name="submit1"> </form> 送信してみたところ、送信方法によって、送るパラメータに差異があることに気が付きました。 ************************************************** 1.テキストに文字列を入れて、送信ボタン(sousin)を押す。 ->リクエストパラメータが、submit1=sousin と text1=文字列 になる。 2.テキストに文字を入れて、フォーカスがテキストにある状態で、Enterを押す。 -> リクエストパラメータが、text1=文字列 だけになる。 ************************************************** 1.と2.どちらの場合でも、 submit1=sousin と text1=文字列 を送りたいと考えています。 クエリストリングは使いたくないので、 onclickをつけてみたり、JavaScriptで少し考えてみましたが、 どうしてもうまくいきませんでした・・・。 2.のように、Enterを押したときでも、 submit1=sousinを送るようにするのはどうしたらよいでしょうか?? 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • PHP 引数の使い方

    PHPファイルどうしで引数を共有する方法を教えてください。 例えば、 「sample001.php」では、 <form action="sample002.php" method="post"> <input type="text" name="word" size="30"> <input type="submit" value="登録"> のタグによって文字列を入力し登録します。 「sample002.php」では、 $arr_word = $_POST["word"]; により、入力された文字列が“$arr_word”に格納されます。 「sample003.php」でも 入力された文字列を使いたい場合は、どうすればよいですか? “$arr_word” もしくは $_POST["word"] もしくは action="sample003.php"  を活用することでできるのでしょうか? PHPはまだまだ初心者です。教えてください。

    • ベストアンサー
    • PHP
  • 引数を受け取る事ができません

    test.htmの内容 <FORM action="mail.cgi" method="POST"> <INPUT type="hidden" name="rcode" value="test"> <INPUT type="button" name="cmd" value="試し"> </FORM> test.cgiの内容 $abc=$ARGV[0]; 上記のようにすれば「test」の文字列が取得できませんでした。 値は文字列で10文字が最大です。 どうすればPerlで受け取る事ができるのでしょうか? perl勉強中です。宜しくお願い致します

  • jacascriptでのPOST送信について

    初めまして。 今回お聞きしたい事は、jsで取得した別フレームの文字列を、URLのパラータに付け、 actionに指定したものをpostで送るというものです。 get送信の場合は文字数制限があるためpostで送りたいです。 frame1:main frame2:sub frame1からframe2のcgiへpost送信を行いたいです。 main側でボタンを押した時に、subに表示されているテキストエリアの文字列を取得し、 それをurl+="prm="+prm;の形でurlのパラメータに設定し、document.f1.action=url; としてpostで送信している。 のですが、prm変数のパラメータの量が多い為、エラーが発生してしまっているみたいです。 例) //別フレームから値をprmdataに格納 var prmdata = parent.out.document.inform.csvedit.value; //送信url生成 url += "prm1=" + prmdata; document.form.taget = sub; document.form.method = post; document.form.action = url; ※上記方法でパラメータ自体送信出来るのですが、 prmdataのパラメータの量が多いとエラーとなってしまいます。 そもそもurlにパラメータを付けpost送信することは可能なのでしょうか? どうにか回避したいと考えています。 どなたかご教授ください。 よろしくお願いします。

  • Javascriptで複数のテキストエリアの文字列を連結させたいです

    Javascriptで複数のテキストエリアの文字列を連結させたいです。 初めまして、 お世話になります。 ------------------------------------------------- <html> <head> <title>無題ドキュメント</title> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body bgcolor="#FFFFFF" text="#000000"> <form name="form1" method="post" action=""> いつ<br> <textarea name="when"></textarea> <br> <br> どこで<br> <textarea name="where"></textarea> <br> <br> だれが<br> <textarea name="who"></textarea> <br> <br> どうした<br> <textarea name="what"></textarea> <br> <input type="submit" name="submit" value="連結"> <input type="reset" name="submit" value="リセット"> <br> <br> いつどこでだれががどうした。<br> <textarea name="textfield"></textarea> </form> </body> </html> ------------------------------------------------- というHTMLがあったとして ボタンを押したら文字列を連結させたいのです。 その際、入力したテキストフィールドで文字列が改行をされてあった場合 それをそのまま反映して表示させたいのです。 ぜひよろしくお願いします。

  • jspでjavascript関数へ引数を渡す方法

    最近Webアプリの勉強をし始めたばかりの初心者です。 今、jspでjavascript関数へ引数を渡す方法がうまくいかず困っています。 以下はjspファイルの該当部分の抜粋です。 やりたいこととしては、画面上で参照ボタンを押したときに、"reference"という文字列を 一度javascript関数を介してサーブレットへ渡すということです。 <head> <script type="text/javascript"> <!-- function func(param){ alert(); document.getElementById("param").name = param; } // --> </script> </head> <form action="/tomcat_test/servlet/hello" method="POST"> <input type="hidden" name="param" id="param"> <input type="button" value="参照" onclick=<%= "func('reference')" %>/> </form> いろいろ調べてみたのですが、なかなかうまくいかずに困っています。 そもそも、参照ボタンを押してもonclickがうまく動いていないようで、 まずその問題を解決したいです。 onclickタグの使い方を間違っているのでしょうか。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • iframeのsrc属性で指定したサーブレットにパラメータを渡す方法

    タブがクリックされたらiframeを使用して動的にタブのコンテンツを表示する画面をJSPで作成しています。 このとき、iframeのsrc属性で指定したサーブレットにパラメータを送りたいと思うのですがどのようにすればよいのかわかりません。 <iframe onload="sendParams()" src="..."></iframe> 次のようにFormを定義して、 <form name="testForm" action="..."> <input type = "hidden" name="A" value="XXX"> </form> onload属性で指定したsendParams()でdocument.testForm.submit()をしてみました。ここで、iframeのsrcとformのactionには同じサーブレットのURLを指定しています。この時、タブをクリックすると、ポップアップで画面が表示されてしまいました。ポップアップではなく、タブの中に表示したいのですが、どのようにすればよいでのでしょうか? URLパラメータとして、パラメータを送ることも考えたのですが、 URLパラメータには変数を指定できるのでしょうか? 例えば、JSP中に<c:set var="A" value="${param.A}" /> という変数設定をしていた場合、Aという変数をURLパラメータ で送れるのでしょうか?送ってみたら、"A"という文字列が 送られていました。 上記の問題のため、GETでもPOSTでも送る方法がわかりません。 どちらでもいいので、わかる方がいたらぜひ教えてください。

    • ベストアンサー
    • Java
  • javascriptで区切り文字

    お世話になります。 ただ今javascript+PHPで開発しております。 FORMの値をjavascriptで取得し、遷移先URL+パラメータ部を作成しPHPに渡しております。 そこで今”&”を入力された場合に困っております。 FORMの値で&と言うのが入力されていたら &が別のパラメータとして認識されてしまうのです。 そこで適当な区切り文字でパラメータ部を作成し PHP側でexplodeしようと思っているのですが どういう区切り文字が適当なのでしょうか? 申し訳ありませんが、ご教授宜しくお願い致します。 formの値 a[]=1 a[]=2 a[]=& a[]=4 javascriptで作成したURL例 http://hoge.php?a[]=1&a[]=2&a[]=&&a[]=4 PHPで受け取り。 $data = _POST['a'] $dataの中身 a=1,a=2,a=4 3番目に入力された&が取得できていない。

  • 文字列置換の方法

    下記の長い文字列をエディタで置換したいのですが、長くなると置換できません。このような長い文字列(?)は一般的なエディタでは置換できないものなのでしょうか。 【置換前】 <FORM ACTION="cargo.cgi" METHOD="POST" ENCTYPE="application/x-www-form-urlencoded"> 【置換後】 <FORM ACTION="cargo.cgi" METHOD="POST">

  • 無効な viewstate

    無効な viewstate 事情があり、javascriptからaspのフォームをサブミットしたいと考えています。 後述したプログラムを記述しましたが、「無効な viewstate です」といった エラーが発生します。 おそらく、javascriptから実行したsubmitが、aspのviewstateの値をサーバに 送信していない為だと思うのですが、javascriptでviewstateを取得する方法など 回避策はあるのでしょうか? <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <script type="text/javascript"> function btn_onclick() { document.getElementById("form1").submit(); }; </script> </head> <body> <form id="form1" runat="server" action="nextpage2.aspx"> </form> <input type="button" value="test" onclick="javascript:btn_onclick();" /> </body> </html>