• ベストアンサー

日本語をパラメータに表示させるには?

いつもお世話になっています。 <input type="text" name="keyword" size="20"> 上記のkeywordに「あいうえお」と入れFORMからGET送信をするとアドレスのパラメータは「&keyword=%A5%B7%A5%E7%A5%C3%A5%D7」となるのですが、これを「&keyword=あいうえお」というようにすることは可能でしょうか? 送信フォーム・受信フォーム共にPHPファイルで文字コードはEUC-JPを使用しています。 2バイト文字のまま次のファイルへ引き渡したいと考えています。 以上何卒よろしくお願い致します。

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

  • ベストアンサー
回答No.2

MSIE7 と FireFOX2で試してみましたが 1.FORMで平文を送る<form enctype="text/plain" というものが有りますが http://www.tagindex.com/html_tag/form/form_enctype.html    少なくとも現在のブラウザではGET、POSTとも<Form action="mailto:***@****" の場合を除いて無効のようです 2. 一旦 CGI/PHPで受けてデコードして平文にし Location: http://example.com/hoge.cgi?key=あいうえお \n\n で飛ばす方法も有りますが MSIE7ではそのまま日本語有効ですが FireFOXでは その文字列もURLエンコードしてしまいますので使えないようです。

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

その他の回答 (1)

  • oka5130
  • ベストアンサー率66% (35/53)
回答No.1

2バイト文字がURLエンコードされてるだけですよね。 フォームの送信先で、$_GET['keyword']には普通に「あいうえお」が 入ると思いますが、URLが日本語にならないといけない理由は何でしょう? http://ja.wikipedia.org/wiki/URL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89

news_0203
質問者

お礼

他サーバーにあるショッピングサイト内を検索するため、相手側のキーワードの受け取り方が「パラメータの文字列を直接受け取る」となっているようです。 そのためエンコードされた文字列をそのまま送信したくご質問させて頂きましたm(_ _;)m

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

関連するQ&A

  • GETパラメータの内、空文字のクエリを消去したい

    フォームからGETで複数のパラメータを送信するとき、値が空文字のものを表示しないようにすることは可能でしょうか。 たとえば、次のようなフォームを含むform.phpがあるとします。 -------------- <form action="./result.php" method="get"> <input type="text" name="id" size="40"> <input type="text" name="name" size="40"> <input type="text" name="address" size="40"> <input type="text" name="sex" size="40"> <input type="submit" value="送信"><input type="reset" value="リセット"> </form> -------------- このフォームから、 -------------- id:13 name:佐藤太郎 address:東京都新宿区適当1-2-3 sex:男性 -------------- というデータを送信した場合、送信ボタンを押すと ./result.php?id=13&name=佐藤太郎&address=東京都新宿区適当1-2-3&sex=男性 のページに遷移しますが、 -------------- id: name:佐藤太郎 address: sex:男性 -------------- ですと ./result.php?id=&name=佐藤太郎&address=&sex=男性 になります。 このままですとクエリが読みにくいので、 -------------- id: name:佐藤太郎 address: sex:男性 -------------- の場合は ./result.php?name=佐藤太郎&sex=男性 と入力値のあるものだけを表示してそれ以外は消去したいです。 というのも、例としたform.phpではパラメータは4つでしたが、現在作成しているフォームではパラメータが21あり、空文字のものも含むと、遷移後の画面のURLがとても見にくいのです。 このようにパラメータを見やすくするようなjavascriptのコードを教えてください。 jQueryは1.7を使用しています。どうかよろしくお願いいたします。

  • 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
  • 1アクションでPOST・GET、両方送信したい

    1つのフォームからボタンをクリックして、 POST・GET送信と、両方飛ばすには、どうすればよいでしょうか? URLに「表示させたいパラメータ」と「表示させたくないパラメータ」 があります。 「表示させたいパラメータ」は、GETで、 「表示させたくないパラメータ」は、POST送信したいのですが、 1つのフォームで、同時に飛ばす方法が分かりません。 <form method =post action=hoge.php>  <input type=text name="piyo" value="piyo">  <input type=hidden name=puyo_id value=puyo>←これだget送信したい  <input type=submit value="送信"> </form>

    • ベストアンサー
    • PHP
  • パラメータが受け取れません。

    パラメータが受け取れません。 input.php と inputData.phpがあります。 input.phpには入力フォームと、登録ボタン押下時に 自画面を呼び出し、入力チェックを行っており、エラーの場合 エラーメッセージを表示、エラーではない場合、inputData.phpに 画面遷移しますが、パラメータが受け取れません。 *input.php if(empty($_POST["name"])){ $err ="えらー"; }else{ header("Location:http://localhost:8080/aaa/inputData.php"); } <form action="input.php" method="post"> <input type="text" name="name" value="aaa"> <input type="submit" name="name" value="bbb"> </form> このようなやり方はできないのでしょうか? お分かりになる方ご教授よろしくお願い致します。

    • ベストアンサー
    • PHP
  • URLエンコードされた日本語をデコードする方法

    下記のようなフォームから日本語を送信してそれを日本語に戻すスクリプトをPHPで作成して実験をしているのですがうまくいきません。 フォームででは、、 <FORM method="get" action="./test.php"> <input type="text" name="str"> test.phpでは、、 CONTENT="text/html; charset=EUC-JP"とした上で echo "元の文字:" . $str . "<BR>\n";としています。 この場合、"あ"を入力するとtest.phpでは"あ"と表示してくれるのですが、"あい"では "あa:BR>" となってしまいます。漢字を入力した場合は"船"は"船"、"日"は"楠:BR>"とよくわからない結果です。これはどこがおかしいのでしょうか? 環境はOS:RedHatLinux、PHP-4.1、apache-1.3です。

    • 締切済み
    • PHP
  • javascriptを使ってパラメータを送る

    GETで送信する際、パラメータを隠す方法を調べていて http://oshiete.nikkeibp.co.jp/kotaeru.php3?q=1304243 を参考にさせていただきました。 testA.php while($list = mysql_fetch_array($rst)){ print" <form name='test' action='testB.php' method='POST'> <input type='hidden' name='text1' value='$ID'> <input type='hidden' name='text1' value='$now'> <script language='JavaScript'> <!-- document.write('<a href=\"#\" onClick=\"document.test.submit()\">' + '$list[name]</a>'); //--> </script> <noscript> <input type='submit' value='SUBMIT'> </noscript> </form>"; } 上記回答者様のコードを試したところ、期待通りの結果が得られました。 しかし、testA.phpからtestB.phpへリンクできません。 document.test.submit()のところに.forms.testを追加してみましたが ステータスバーにエラーが発生しましたとなります。 解決済みの問題を再度投稿して申し訳ありませんが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPでフォームからの送信

    PHPでフォームからデータを送信する方法について教えてください。例えばPHPファイルの中に下の様にフォームを作成して、送信ボタンを2つ作ります。一つのボタンをクリックすると全てのフォームの情報が送信されてしまいますが、独立して送信できるようにはできないのでしょうか。簡単にでもできるかできないかを教えていただけましたら、あとは自分でなんとかがんばりますので、どなたか教えていただけれますと幸いです。宜しくお願いします。 <form action="abc.php" method="post"> AAA:<input type="text" name="simei"> BBB:<input type="password" name="pass"> <input type="submit" value="送信"> </form> <form action="abc.php" method="post"> CCC:<input type="text" name="simei"> DDD:<input type="text" name="pass"> <input type="submit" value="送信"> </form>

    • ベストアンサー
    • PHP
  • mb_convert_encodingのタイミング

    検索フォームがあるphpファイルはShift_JISですが、検索を問い合わせるデータベースがEUC-JPになっています。 <form action="search.php" method="post"> <input type="text" name="keyword" size=30> <input type="submit" value="検索"> </form> 検索フォームで入力されたキーワードをmb_convert_encodingでShift_JISに変換してからpostしたいのですが、search.phpで検索キーワードを受け取る前にエンコード変換することは無理なのでしょうか?

    • ベストアンサー
    • PHP
  • 変数が表示されない。

    HTMLフォームからgetで、phpに変数を渡し、それを表示させるだけなのですが、なぜか変数部分だけが表示できません。どなたかご教授お願いいたします。 XAMPP2.5.8をXP上で使用しています。 <送信側HTMLフォーム> <html> <body> <form action=/cgi-bin/sample.php method="get"> 今は西暦<input type=text name=yyyy>年 <input type=submit value="送信"> </form> </body> </html> <受信側PHPファイル> <?php print "今年は西暦" . $_GET['yyyy'] . "年\n"; ?> $_GET[$yyyy]な風にもしてみましたがダメでした。 php.iniのregister_globalはonにし、$_GET[]を利用しない方法で print "今年は西暦" . $yyyy . "年\n"; と試してみても結果は同じでした。 あまりに基本的なこと過ぎて恥ずかしい話ですが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • フォームで送った文字がおかしくなる

     フォームから文字を記入して、送信ボタンを押すと次のページでその文字が表示されるという初歩的なプログラムをつくっています。しかし、フォームからPOSTでデータを送る場合、ある特定の一文字の漢字だけを記入して送信ボタンを押すと正常に表示されません。 例えば、「卒業」だと正常に表示されるのに「卒」だと「'」になってしまい、他にも「文」や「動」を一文字だけ記入すると、何も表示されません。ひらがなやカタカナ、複数文字の場合は全て正常です。原因が分からなくて困っています。 a.php (入力フォーム) <HTML> <HEAD> <TITLE>テキスト送信のテスト </TITLE> <META http-equiv="Content-Type" content="text/html; charset=EUC_JP"> </HEAD> <BODY> <FORM method="POST" action="view.php"> 入力してください: <INPUT type="text" name="name"> <BR> <INPUT type="submit" value="送信"> </FORM> </BODY> </HTML> view.php (表示するphpファイル) <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=EUC_JP"> <META http-equiv="Content-Style-Type" content="text/css"> </HEAD> <BODY> <?php print $_POST["name"]; ?> </BODY> </HTML> どこか間違いがあるでしょうか? a.phpとview.phpは両方とも日本語(EUC)改行=LFで保存しています。 phpのバージョンは5.1.1です。よろしくお願いします。

    • ベストアンサー
    • PHP