こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

javascriptでCGIを実行するには

htmlタグ
<form method="post" action="・・・/cgi-bin/gogo.cgi">
<input type="text" name="name" size="20" value="">
<input type="submit" value="送信">

上記で送信ボタンを押すとcgi側でnameを受け取れますが、
以下の場合はcgiは動作するのですが、nameを受け取れません、
受け取れる方法を教えてください。

<script type="text/javascript" language="javascript">
<!--
function gogo(){
document.write('<img src="・・・/cgi-bin/gogo.cgi">');
}
// -->
</script>
</head>
<body>
<form method="post" action="javascript:gogo()">
<input type="text" name="name" size="20" value="">
<input type="submit" value="送信">
</form>

投稿日時 - 2012-09-15 16:56:55

QNo.7699073

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

formの方のmethodはpostでしょ
imgとかのurlにパラメータつけmethodはget
ページの遷移なしでやりたいんだろうけどそれなら素直にAjax使うか
CGI側でgetを受け取れるようにしてform.submit()しなさい

投稿日時 - 2012-09-16 12:18:04

ANo.2

#1です。勘違いしていました。

<form method="post" action="javascript:gogo()">
ではなく、
<form method="post" action="xxxxx" onsubmit="return gogo();">
--
function gogo (){
var img = document.createElement ('img');
img.src = "/cgi-bin/gogo.cgi?name=123";
img.alt = "";
document.body.appendChild (img);
return false;
}
のようにして、受け取る側が method="get" で受けとるようにとか?
アクセス解析でもするの?

投稿日時 - 2012-09-16 09:09:17

補足

回答ありがとうございます。

<form method="post" action="xxxxx" onsubmit="return gogo();">

gogo (){
var img = document.createElement ('img');
img.src = "/cgi-bin/gogo.cgi?name=123";
img.alt = "";
document.body.appendChild (img);
return false;
}

で実験しましたが、cgiが動作しませんでした。

<form method="post" action="/cgi-bin/gogo.cgi" onSubmit="gogo();">

function gogo()
{
window.close();
window.open();
・・・

この場合window.close();のみでwindow.open();がない場合はcgiでパラメータを受け取れました。
後一歩といったところですが、よろしくお願いします。

cgiでは入力された氏名とその時刻をリストアップしてメールで送信する処理です。
javaでは氏名入力した画面削除と新しいページを開く処理をします。

投稿日時 - 2012-09-16 11:48:33

ANo.1

<form onsubmit="ここにいろいろ"

投稿日時 - 2012-09-15 20:51:42