アンカーで同一のCGIを別ウィンドウに起動してパラメータを渡すには?
[上に]
[前に]
[次に]
アイモモ
2000/01/28(金) 14:37:39
お世話になっております。
リンクを使って今起動しているCGIとまったく同じCGIを
別のウィンドウに起動したいのですが、パラメータが渡りません。
こういうときどのようにパラメータを渡したら良いのでしょうか?
#どうも新しいウィンドウではなく、今起動しているウィンドウのパラメータ
#を変えているだけのような感じがする・・・?
↓ソースです。
(略)
<SCRIPT LANGUAGE="JavaScript">
<!--
function goNewPage(moji){
document.menu.flag=1;
document.menu.name=taro;
document.menu.str=moji;
return true;
}
//-->
</SCRIPT>
・・・
<FORM NAME="menu">
<INPUT TYPE="hidden" NAME="flag" VALUE="">
<INPUT TYPE="hidden" NAME="name" VALUE="">
<INPUT TYPE="hidden" NAME="str" VALUE="">
<A HREF = "test.cgi" onClick = "return goNewPage('ここをクリック');" TARGET="_blank">ここをクリック</A>
(略)
透明人間
2000/01/28(金) 14:49:34
document.menu.flag.value=1;
document.menu.name.value=taro;
document.menu.str.value=moji;
では?
アイモモ
2000/01/28(金) 15:36:22
・・・すみません、たしかにvalueを書き忘れました。
それでもパラメータ渡らないのですが。
よろしくお願いします。m(_ _)m
ラウォッチ
2000/01/28(金) 15:50:08
以下でどうですか〜
function goNewPage(moji){
document.menu.flag.value="1";
document.menu.name.value="taro";
document.menu.str.value=moji;
// return true;
document.menu.submit()
}
ラウォッチ
2000/01/28(金) 15:56:12
よく考えると、ちょっとおかしい。
こんな感じかなぁ〜
<SCRIPT LANGUAGE="JavaScript">
<!--
function goNewPage(moji){
document.menu.flag=1;
document.menu.name=taro;
document.menu.str=moji;
document.menu.submit();
}
//-->
</SCRIPT>
<FORM NAME="menu" ACTION="test.cgi">
<INPUT TYPE="hidden" NAME="flag" VALUE="">
<INPUT TYPE="hidden" NAME="name" VALUE="">
<INPUT TYPE="hidden" NAME="str" VALUE="">
<A HREF = "#" onClick = "return goNewPage('ここをクリック');" TARGET="_blank">ここをクリック
</A>
アイモモ
2000/01/28(金) 16:13:00
ラウォッチさんレスありがとうございます。
goNewPageの関数のなかにdocument.menu.submitとかくと
前のページ(新しいページでないほう)がsubmitされてしまいます。
#同じCGIだから?
う〜ん、むずかしいです。
アイモモ
2000/01/28(金) 16:19:21
ラウォッチさんレスありがとうございます。
goNewPageの関数のなかにdocument.menu.submitとかくと
前のページ(新しいページでないほう)がsubmitされてしまいます。
#同じCGIだから?
う〜ん、むずかしいです。
ラウォッチ
2000/01/28(金) 16:30:56
わかった! コリャ無理だ!
HREFからのCGIではフォームのデータは渡せません。
ですので、別の方法を
function goNewPage(moji){
URL = "test.cgi?flag=1&name=taro&str=" + moji;
location.replace(URL);
}
<A HREF = "#" onClick = "return goNewPage('ここをクリック');" TARGET="_blank">ここをクリック
アイモモ
2000/01/28(金) 17:34:55
と、いうことはCGIのpostにしてもget状態(^ ^;
にしかできないということですか・・・。
ラウォッチ
2000/01/28(金) 18:04:39
CGIの方で、両方(postとget)めんどうみればいいのでは...。
アイモモ
2000/01/28(金) 18:20:54
getかpostかは別にして・・・。
location.replaceでやると、新しいページに前のページがきて、
前のページに新しいページがくる?のですが、対処法はありますか?
あと、「ここをクリック」とか全角の文字は渡せてないようなんですが・・・。
かえる
2000/01/28(金) 18:21:31
formのtargetに_blankを指定すれば新たにウィンドウが開き、
そちらにフォームのデータが渡せます。
<SCRIPT LANGUAGE="JavaScript">
<!--
function goNewPage(moji){
document.menu.flag.value=1;
document.menu.name.value=taro;
document.menu.str.value=moji;
document.menu.submit();
}
//-->
</SCRIPT>
<FORM NAME="menu" ACTION="test.cgi" target="_blank">
<INPUT TYPE="hidden" NAME="flag" VALUE="">
<INPUT TYPE="hidden" NAME="name" VALUE="">
<INPUT TYPE="hidden" NAME="str" VALUE="">
<A HREF="#" onClick="return goNewPage('ここをクリック');">ここをクリック</A>
アイモモ
2000/01/28(金) 18:44:29
かえるさんありがとうございます。
これだとある意味うまくいくのですが・・・。
全ての動作に対して新しいウィンドウが開いてしまいます。
例えば、リンクのボタンを押したときだけで
通常の送信ボタンを押したときは新しいウィンドウは開かない!
というふうにできないもんでしょうか?
よろしくお願いします。
ラウォッチ
2000/01/28(金) 18:45:47
かえるさんのでは、必ず別ウインドウが開いてしまいます。
(アイモモさんは元のは、そのウインドウのままサブミットしたいみたい)
こちらも、target="_blank"を Aタグに入れるとか。
<A HREF="#" onClick="return goNewPage('ここをクリック');" target="_blank">ここをクリック</A>
>全角の文字は渡せてないようなんですが・・・。
は、今から調べてみます。
ラウォッチ
2000/01/28(金) 19:03:58
今度は、デバックしました!
<HTML>
<BODY>
<SCRIPT>
function goNewPage(moji){
// alert(moji);
URL = "test.cgi?flag=1&name=taro&str=" + moji;
document.links[0].target="_blank";
document.links[0].href=URL;
}
</SCRIPT>
<A HREF = "#" onClick = "return goNewPage('ここをクリック');">ここをクリック</A>
</BODY>
</HTML>
あと、漢字ですが、JavaScript上では問題ないですね。
ただ、HREFの時は自力でURLエンコーディングが必要なのかも。
この辺はちょっとわかりません。
アイモモ
2000/01/28(金) 19:54:10
・・・スミマセン、できません。
わけも分からず丸コピーしてるからいけないんですね。
<A HREF = "#" ・・・
の#の意味は何ですか?
新しいウィンドウをひらかず、ページ内のある位置に飛ぶだけなんです。
ラウォッチ
2000/01/28(金) 21:37:56
#はHTML文書の先頭の意味です。
>新しいウィンドウをひらかず、ページ内のある位置に飛ぶだけなんです。
links[0]のインデックスはそのページの先頭行からのゼロ始まりで、
<A HREF〜>の数に対応します。
(先頭行から3番目の <A HREF なら2なります)
アイモモ
2000/01/28(金) 22:00:00
[[解決]]
<A HREF = "#" onClick = "return goNewPage('ここをクリック');">ここをクリック</A>
とかいたら先頭にとんでたんですね。
ところで、あきらめてボタンを透過にしてごまかそうと思って
「ボタン」で検索したら過去に同じ質問している人がいまして・・・。
#「アンカー、リンク」だとひっかからなかったのにぃ。
!解決しました!
<A HREF="JavaScript:document.menu.flag.value='1';document.menu.submit();>ここをクリック</A>
でいけました。
みなさまありがとうございました。
今日はぐっすり眠れそうです。\(_ _).zZ
[上に]
[前に]
[次に]