老地方冰果室交流區

歡迎冰果室讀者在此交流
現在的時間是 11/22/2019 5:51 am

所有顯示的時間為 UTC + 8 小時




發表新文章 回覆主題  [ 4 篇文章 ] 
發表人 內容
文章發表於 : 03/20/2003 7:39 am 
離線
討論區管理員
頭像

註冊時間: 05/02/2001 1:01 am
文章: 1297
這就是問題的答案啦。

How can I include form values in a javascript window.open?
https://lists.latech.edu/pipermail/java ... 02519.html

_________________
[digdog dig];


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 03/20/2003 11:01 am 
離線
基本會員

註冊時間: 03/08/2002 1:01 am
文章: 52
來自: 天母 石牌 台北 台灣
先謝謝digdog
下面是我測試的結果,雖有一個問題,但影響較小。

if ($HTTP_POST_VARS['print_row_id']) {
session_register("print");
$HTTP_SESSION_VARS['print']=$HTTP_POST_VARS['print_row_id'];
header("Location: memo.php");
exit;
}

<html>

<form name="view_control" method="post" action="<? echo $PHP_SELF?>" target="yy">
<input name="view" type="submit" value="View" onClick="window.open('memo.php','yy')">


討論:
1.由於我網頁的需要,同一個form裡另外一個button需要echo $PHP_SELF,所以我form的action必須指向$PHP_SELF,也因為如此,所以我網頁開頭必須寫個簡單的轉址功能。這就是我提到的小問題。

2.若form中的target與input之window.open中的target不同,例如我將其中一個yy改成hh,若按下button後,則會同時開啟兩個視窗。所以就沒有辦法讓第二個button也有新開視窗的功能,不過再這樣設計下去就太複雜了。

3.傳值的問題。為何要用yy呢?因為若我兩個都改用_blank則會開兩個視窗,由form開的視窗是舊的值,由onclick開的視窗是新的值,因此target須自定,不能用_blank之類的值。

也許也會有人有同樣的疑惑吧!我就先將我的經驗分享一下。

ps. 很久沒複習這些html的tag有何特殊效用了:oops:


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 03/20/2003 11:30 am 
離線
留言破百
頭像

註冊時間: 04/30/2001 1:01 am
文章: 206
來自: G8
Tse-Ching Ho 寫:
<form name="view_control" method="post" action="<? echo $PHP_SELF?>" target="yy">
<input name="view" type="submit" value="View" onClick="window.open('memo.php','yy')">

如果你要用 在該 button 做 OnClick 事件
可以不用 Submit 的功能
你必須寫一個 function 來處理卡方便
例如
引言回覆:
function GetMyChoice(form){
取得 checkbox 的值
如白老闆提供的,存入cookie
window.open('memo.php','choice');
}
<input name="view" type="button" value="View" onClick="GetMyChoice(document.form)">

希望有幫助 :oops:

_________________
JUMBO 最個性化的網路服務
無限大容量電子信箱,支援POP3,IMAP
無限大容量網頁空間,送部落格、相簿,支援RSS與Podcast


回頂端
 個人資料  
 
 文章主題 :
文章發表於 : 03/20/2003 2:19 pm 
離線
討論區管理員
頭像

註冊時間: 05/18/2001 1:01 am
文章: 2475
來自: Forgotten Realm
你的問題應該是要如何開一個新視窗,同時把 Form 的 value 傳給新視窗吧?基本上有幾種解決方式:

1. 如果是要傳遞給新視窗中的 Javascript 或是 Form 中,你用

var newwin = window.open(...)
newwin.opener = window;

然後在 newwin 的 onLoad 中呼叫 opener 的 function 或是直接用 opener.document.forms['...'].elements['...'].value 來抓。

或是用 showModelDialog,第二個參數可以用來傳值。

2. 如果這些值要用來作一些事先的計算或是資料庫讀取動作,你可以用

function openwin() {
var url = 'yourtagrget.cgi?param1='+document.form.param1.value;
window.open(url,'...','...');
}

這樣做。

3. 如果資料量大,必須要用 POST,你可以試試先用

window.open('','NEW_WINDOW','width=500,height=300')

然後設定 document.form.target='NEW_WINDOW'

這種做法 Mac 的 IE 適用,PC IE 5.0 適用,但是 5.5 不能用。6.0 沒試過

4. 用 Cookie。用 Javascript 設定 Cookie。這個方式比較繁瑣,我個人不喜歡用這種方式。

5. 賤招之一。要開視窗時直接開一個空白頁面,裡面只放一個 form 其中 input 通通用 hidden。用 Javascript 一個一個填好,然後再用 javascript 去 submit 新視窗的 form。

6. 賤招之二。主畫面自己 Post,接 POST 的程式設定 Session ,然後回應一個空白畫面裡面寫 window.open('...') 和 window.history.back()。新視窗程式由 session 去抓值。

以上。

_________________
ash nazg durbatuluk, ash nazg gimbatul,
ash nazg thrakatuluk agh burzum-ishi krimpatul.


回頂端
 個人資料  
 
顯示文章 :  排序  
發表新文章 回覆主題  [ 4 篇文章 ] 

所有顯示的時間為 UTC + 8 小時


不能 在這個版面發表主題
不能 在這個版面回覆主題
不能 在這個版面編輯您的文章
不能 在這個版面刪除您的文章
不能 在這個版面上傳附加檔案

搜尋:
前往 :  
POWERED_BY
正體中文語系由 竹貓星球 維護製作