[爆卦]Jquery window open是什麼?優點缺點精華區懶人包

為什麼這篇Jquery window open鄉民發文收入到精華區:因為在Jquery window open這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者kay1212 (Kay)看板Ajax標題[問題] 關於jQuery開新視窗的一個問題時間Wed...


各位好,想請問一個煩惱我的狀況

我先描述環境
網頁A:內有含有checkbox的表格,而jQuery跟js的部分
會將有勾的checkbox內部的value存成陣列按鈕之後將陣列送出

網頁B:收到A傳送的陣列後,根據陣列的值去SQL存取資料,並echo出來

網頁A,B都有使用jQuery

因為我是這一個月內密集學習php+mysql+jquery
所以一開始我還沒碰到jQuery時,我的做法是這樣

A裡面放置一個form,action為B網頁,目標是_blank,使用submit
將勾選的checkbox送出POST陣列

B接收POST陣列,根據接收的值作SQL存取,並echo (B會另開新視窗)

之後接觸到jQuery時

A利用jQuery選擇器選取按鈕click動作,將勾選的checkbox存成陣列
利用$.POST丟給B網頁,並有一塊div區域準備讓B回傳的data顯示結果

B就單純的接收陣列後,存取sql,回傳結果給A
(整個動作都在A視窗內搞定,不會另開視窗)



但是現在我需要的結果如下

希望可以利用jQuery將勾選的checnkbox資料送出給B網頁
而且B網頁會開新視窗顯示結果
但我研究了一下,我卡關卡了一個下午,百思不得其解

雖然說用傳統的form submit可以解決掉的東西
但是我需要從jQuery方便去做解法 (網頁裡面牽扯了不少東西就是了)

我昨天嘗試了幾個方案,都失敗

失敗A:
click後馬上window.open B網頁,再將陣列$.POST送到B網頁
後來想了想,window.open的B網頁,跟$.POST送出陣列的目標B網頁
這兩個B網頁應該是不同的 = =+

失敗B:
click後window.open空白網頁,之後A網頁以$.POST送出陣列後
收到B網頁回傳的data,並將data塞進去空白網頁
這樣子看起來雖然像一個我所要結果,但是B網頁裡面的js,jQuery語法都失效 Orz

不知道有沒有版友有法能解嗎 ><
解不掉好痛苦呀.. Orz 比便秘還慘..


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.120.15.176
kerash:1.$.POST 後等 callback ,2. callback 回來後呼叫 open 03/21 10:27
kerash:再把 callback 的資料一併丟進去 03/21 10:27

感謝回應

我嘗試了這樣子寫,但是沒有成功

$.post("B網頁.php",
{
chkedbox : chkedbox
},
function(data,textStatus)
{
var popw = window.open();
$(popw.document.body).html(data);
});


我詳細描述網頁的內容好了
是要讓使用者在A網頁選擇想要看到的物品
B網頁是一個含有html的php網頁(裡面也用了一些 jQuery,javascript)
內容大概是,B網頁接收到A給的陣列後,在用jQuery語法將陣列送到sql處理程式
從資料庫取出的資料會回傳給B網頁,塞到ckeditor的textarea裡面

而上面的post寫法,會讓open的網頁裡面雖然看起來會有B網頁的內容
但是js,jQuery語法都沒有成功,所以jQuery也沒有辦法將陣列丟給後面的sql處理程式



PS:將checkbox的value取出存成陣列這點是OK的,這個地方沒有錯誤
kay1212:感謝回應 03/21 11:00

kerash:確認一下,這樣就代表 b 網頁跟 open 的網頁內容一樣 03/21 11:04
kerash:是這個意思嗎? 03/21 11:04
是的
no1kk:用了jQuery之後,還是可以用舊方法啊..form submit最簡單 03/21 11:04
我本也是這樣子想,不過在A網頁中
我是在一個已經存在一個submit按鈕的form裡面,再放一個按鈕
而這個form已經有指定的action網頁了,所以我才用jQuery去挑我新增的那個按鈕

kerash:我跟kk的想法一樣,直接用 submit 就好,而且其實B網頁不用 03/21 11:07
kerash:寫html碼,直接回傳跑php後的結果就好,再讓A網頁拆解 03/21 11:08
kerash:或用json也可以。之後再把回傳值餵給新開的視窗處理 03/21 11:08
kerash:而這個新開的網頁本身就寫好 js 就可以 03/21 11:09

GOT!K兄的說明跟我現在腦中想的解法有點像
而這個解法我可能會碰到幾個問題,我要怎麼將資料塞到一個新開且內含有些js的的視窗
因為那些資料是要放到一個特定的地方裡面,依照我這個月硬k的結果..心有餘而力不足
阿 QQ


..硬k的結果就是腦中能夠找到的解法真是少之又少.. Orz 經驗嚴重不足阿
※ 編輯: kay1212 來自: 140.120.15.176 (03/21 11:18)
kay1212:感謝k兄跟kk兄回應 03/21 11:18
kerash:可以試試看跨視窗呼叫 javascript , 把值當參數丟進去 03/21 12:07
kay1212:正在嘗試K大的方法,不過卡關中.. js子母視窗傳值不熟 Orz 03/21 14:40
IamTD:所以B網頁到底有沒有接收到A網頁傳過來的參數? 03/21 17:28
B網頁會接收A網頁利用js.jQuery方法傳過來的一個陣列
no1kk:針對你對我推文回覆的部份,我有做過類似的東西.. 03/21 17:45
no1kk:新的按鈕按下後修改form的action和target,然後觸發submit 03/21 17:46
no1kk:接著在將action和target改回原本的,我是做在編輯文章的「預 03/21 17:47
no1kk:覽」功能,將資料submit到預覽的頁面 03/21 17:47
感謝kk大,這是一個很重要的tip,這讓我腦內的想法又開始動了起來
非常感謝
TonyQ:已經變得太複雜了,不過如果是 win,open() 的話,被open的 03/21 21:10
TonyQ:傢伙如果是同網域,可拿 opener 來存取開他的人的 document 03/21 21:10
TonyQ:很多預覽其實可以這樣作。 03/21 21:11
TonyQ:原本的題目我倒是看不懂 Orz 有簡單犯例會比較清楚。 03/21 21:11
QQ 我真希望表達能力能夠好一點,總之感謝TonyQ大回復
其實我有盡量的簡化我的需求,其實在A網頁中
checkbox還是埋在iframe裡面,我是想盡辦法才將值取出呢

關於opener,我今天在爬的時候也有看到子母視窗可以用這個傳值
我盡量的去吸收,但是消化不良中...

我這個月簡直一次看了太多東西,基礎打的不好就上陣了
我會盡量的去補充js的基本功

如果我提問了很基礎,很愚蠢的問題
請各位不吝指教,我會更加精進自己的 QQ
s25g5d4:TonyQ大在用手機上PTT嗎? 03/21 21:38
TonyQ:是啊,你看我發文不附code通常就是手機 03/21 22:49
s25g5d4:不 其實我是發現你.打成, XD 03/21 22:50
※ 編輯: kay1212 來自: 223.140.50.16 (03/22 01:54)
kay1212:感謝各位的回答呀 QQ 03/22 01:54
carlcarl:或者是用javascript建一個新的form 把要的值塞進去 03/22 02:46
carlcarl:再用javascript submit這個form這樣@@ 不過直接改action 03/22 02:47
carlcarl:好像比較簡單 上面的方法 03/22 02:47

你可能也想看看

搜尋相關網站