• ベストアンサー

JavaScriptからCGI

JavaScriptの関数内でCGIを呼び出す際に、 以下のようにしています。 location.href = "result.cgi?MSG="+Message+"&FLAG="+Flag; しかし、Messageという変数に「=」という文字 が含まれているためうまくCGIにわたってくれません。 こちらからCGIにわたす際にきちんと引数を わたすためにはどうしたらよいのでしょうか? 教えてください。

  • CGI
  • 回答数2
  • ありがとう数4

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

  • ベストアンサー
  • ryouki
  • ベストアンサー率50% (11/22)
回答No.2

多分、問題になるのは[=]だけではないと思います。[&]も[?]もダメなはず。 なので、URLに使っちゃいけない文字を片っ端からエンコードしてくれる関数を使ってしまいましょう。参考URL参照。 str = escape("いろは"); 渡したい値それぞれに、上記関数による変換をかけてみてください。 CGIの方のデコードが賢ければ、これだけで幸せになれると思います。

参考URL:
http://tohoho.wakusei.ne.jp/js/builtin.htm#encode
mymilky
質問者

お礼

ありがとうございました。 なんとかできました。

その他の回答 (1)

  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

そのCGIのデコードルーチンがまともなものであれば、Message内の「=」を、全て「%3D」に変換すれば解決するはずです。 (「%3D」は「=」をエスケープした値です) Message = Message.replace(/=/g,'%3D'); という行を追加してみて下さい。

mymilky
質問者

お礼

ありがとうございました。 なんとかできました。

関連するQ&A

  • CGIのリターンをjavascriptで受けるには

    はじめまして、よろしくお願いします。 呼び出すとある文字列を返すCGIがあるとして、呼び出すときは <button onclick="location.href=xxx.cgi" など何とかできるのですが、リターンの受け方がわかりません。 どこにどう戻ってくるのか見当がつきません。 調べてみましたがjavascriptではできるのかどうかすらよくわからなかったので、可能か不可能か、可能ならばその簡単な方法を教えていただけると嬉しいです。よろしくお願いします。

  • JavaScriptでcgiの戻り値を受け取るには?

    JavaScriptの関数内でcgiを実行(submit)しています。 そのcgiの実行結果(cgiで記述しているexit 0などの0)を受け取る方法を教えてください。 受け取った値によって、alertでメッセージを表示させたいです。 cgiの実行からalertでメッセージを表示させるまでの処理を JavaScriptの1つの関数内で行いたいです。 よろしくお願いいたします。

  • PHP内でJavaScriptの処理は可能?

    PHP内変数 $flag をJavaScriptで参照し、条件処理を行っています。 JavaScriptの処理は onClick() のタイミングで行います。 ソースの概要は以下のようになります。 1.ログインしているか見る(flagでチェック、1はログイン中…) 2.flagのデータ取得、条件処理。 3-1. flagが1以外なら、true処理 3-2. flagが1なら、false処理  ・  ・ と、こんな処理を行いたいのですが…上手く出来ません。 ソースは以下になります。PHP側の変数 "$flag" までの取得は上手く出来たのですが、 JavaScript側の処理で、つまづいてます…。 で、表題にもあるようにPHP内でJavaScriptの処理は可能でしょうか? アルゴリズム的に、アドバイスなどありましたらご教授ください。 以下が主要部分のソースになります。 <?php echo("<script Language='JavaScript'> "+ "<!-- "+ "function check(){ "+ "if($flag != '1'){ "+ "return true; "+ "} "+ "else{ "+ "header('Location: ./error.html'); "+ "exit(); "+ "return false; "+ "} "+ "} "+ "//--> "+ "</script> "); echo(" <a href='test.html'><img src='botton.gif' onClick='check()' "> アドバイスお願い致します。

    • 締切済み
    • PHP
  • Javascript外部ファイルが読み込めません

    外部.js ファイルに記述した関数の呼び出しが、 Windows + IE6 だとできるのですが、 Windows + NN7 Mac + IE5 だとできません。 エラーメッセージすら出ず、無反応の状態です。 もちろん、ブラウザの設定ではJavascriptはONです。 呼び出し方は <a href="javascript:関数名('引数');"></a> <a href="#" onClick="関数名('引数');"></a> の両方を試しましたが、 どちらも Windows + IE でしか動きません。 どうすれば正常に動くようにできるでしょうか? とても困っています。 どなたかよろしくお願いいたします!

  • JavaScriptで、VBのAddHandler

    JavaScriptで、VBのAddHandlerのようなことを行う方法はないでしょうか? やりたいこととしましては、 一つの関数が呼ばれた際に、別の関数が呼ばれるように定義しておきたいと思っております。 簡単に、VBの例をあげるとすると下記のようなことです。 これをJavaScriptでやる方法を探しています。(jQueryでも構いません) ご存じでしたら、ご回答をお願い致します。 -------------------------------------- private sub Msg1()    MsgBox("1") End sub private sub Msg2()    MsgBox("2") End sub 'メッセージ1が呼ばれる際に、Msg2を呼ぶように定義 AddHandler Msg1, Addressof Msg2 ----------------------------------------

  • JavaScriptのパフォーマンスについて

    JavaScriptのパフォーマンスについて質問です。 いくつもの関数の間で、変数を利用する際、 関数の引数にして受け渡すことが一番パフォーマンスが良いと思います。 ただ、もしそれができない場合、 ・グローバル変数にして、複数の関数で利用することと、 ・HTMLのINPUT(type="hidden")などに置いておいて、DOM操作で取得すること どちらの方が、クライントのパフォーマンスが良いのでしょうか。

  • javascriptに引数を渡す方法について

    お世話になります、 javascriptに下記のように引数を渡して 表示したいのですがうまくいきません。 <script language="javascript"> function dispData(msg) { document.write(msg); } </script> $a = "hoge"; echo "<a href='#' onclick='javascript:dispData($a)'>" . $a . "</a><br>"; とすると動作してくれません。 $aをシングルコートで囲っても同じです。 $a = "/hoge/";をやると/hoge/を表示されます。 コーディングの方法を教えて頂きたいのですが。 dispData()に引数を渡して処理を行いたいもので。 よろしくお願い致します。

    • ベストアンサー
    • PHP
  • (CGI)お気に入り登録やアドレス直打ちを防ぐには?

    フレームページ等を使用していてフレーム内のアドレス直打ち、それによるお気に入り登録を防ぐには以下のタグが有効ですよね?↓↓ <SCRIPT language="javascript"> <!-- if (!document.referrer){top.location.href="http://************";} //--> </SCRIPT> または、 <script language="JavaScript"> <!-- if(self ==top){location.href = "http://*****";} // --> </script> この「アドレス直打ち、お気に入り登録を防ぐ機能」をCGIで表す事は可能ですか? 可能ならば、とどのようになりますでしょうか? CGIで作成した掲示板の中に挿入して防ぎたいのですが・・ 宜しくお願いしますm(_ _)m

    • ベストアンサー
    • CGI
  • Javascript+PHPで変数を受け渡したい

    PHP変数の文字列データを、 <a href ="Javascript:xxx($data)">として、関数を実行させたときに、関数側での function xxx(data){ --データで指定されたhtmlへ移動したい } という方法は、実現できないのでしょうか。 Javascriptのエラーでデータの受け渡しができていないみたいなのですが、わかる方教えてください。

  • JavaScriptにPHPの変数

    どちらで質問しようか迷いましたけど^^; PHPでの変数をJavaScriptに移動(?)できないのでしょうか? $abs = 30; setTimeout("location.href='abc.php?var=<? echo $abc;?>'",1000*40); このような形で移したいのですが、これはできないのでしょうか?

    • ベストアンサー
    • PHP