作者kay1212 (Kay)
看板Ajax
标题[问题] 关於jQuery开新视窗的一个问题
时间Wed Mar 21 10:19:53 2012
各位好,想请问一个烦恼我的状况
我先描述环境
网页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
1F:推 kerash:1.$.POST 後等 callback ,2. callback 回来後呼叫 open 03/21 10:27
2F:→ 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的,这个地方没有错误
3F:→ kay1212:感谢回应 03/21 11:00
4F:推 kerash:确认一下,这样就代表 b 网页跟 open 的网页内容一样 03/21 11:04
5F:→ kerash:是这个意思吗? 03/21 11:04
是的
6F:推 no1kk:用了jQuery之後,还是可以用旧方法啊..form submit最简单 03/21 11:04
我本也是这样子想,不过在A网页中
我是在一个已经存在一个submit按钮的form里面,再放一个按钮
而这个form已经有指定的action网页了,所以我才用jQuery去挑我新增的那个按钮
7F:→ kerash:我跟kk的想法一样,直接用 submit 就好,而且其实B网页不用 03/21 11:07
8F:→ kerash:写html码,直接回传跑php後的结果就好,再让A网页拆解 03/21 11:08
9F:→ kerash:或用json也可以。之後再把回传值喂给新开的视窗处理 03/21 11:08
10F:→ kerash:而这个新开的网页本身就写好 js 就可以 03/21 11:09
GOT!K兄的说明跟我现在脑中想的解法有点像
而这个解法我可能会碰到几个问题,我要怎麽将资料塞到一个新开且内含有些js的的视窗
因为那些资料是要放到一个特定的地方里面,依照我这个月硬k的结果..心有余而力不足
阿 QQ
..硬k的结果就是脑中能够找到的解法真是少之又少.. Orz 经验严重不足阿
※ 编辑: kay1212 来自: 140.120.15.176 (03/21 11:18)
11F:→ kay1212:感谢k兄跟kk兄回应 03/21 11:18
12F:推 kerash:可以试试看跨视窗呼叫 javascript , 把值当参数丢进去 03/21 12:07
13F:→ kay1212:正在尝试K大的方法,不过卡关中.. js子母视窗传值不熟 Orz 03/21 14:40
14F:→ IamTD:所以B网页到底有没有接收到A网页传过来的参数? 03/21 17:28
B网页会接收A网页利用js.jQuery方法传过来的一个阵列
15F:推 no1kk:针对你对我推文回覆的部份,我有做过类似的东西.. 03/21 17:45
16F:→ no1kk:新的按钮按下後修改form的action和target,然後触发submit 03/21 17:46
17F:→ no1kk:接着在将action和target改回原本的,我是做在编辑文章的「预 03/21 17:47
18F:→ no1kk:览」功能,将资料submit到预览的页面 03/21 17:47
感谢kk大,这是一个很重要的tip,这让我脑内的想法又开始动了起来
非常感谢
19F:→ TonyQ:已经变得太复杂了,不过如果是 win,open() 的话,被open的 03/21 21:10
20F:→ TonyQ:家伙如果是同网域,可拿 opener 来存取开他的人的 document 03/21 21:10
21F:→ TonyQ:很多预览其实可以这样作。 03/21 21:11
22F:→ TonyQ:原本的题目我倒是看不懂 Orz 有简单犯例会比较清楚。 03/21 21:11
QQ 我真希望表达能力能够好一点,总之感谢TonyQ大回复
其实我有尽量的简化我的需求,其实在A网页中
checkbox还是埋在iframe里面,我是想尽办法才将值取出呢
关於opener,我今天在爬的时候也有看到子母视窗可以用这个传值
我尽量的去吸收,但是消化不良中...
我这个月简直一次看了太多东西,基础打的不好就上阵了
我会尽量的去补充js的基本功
如果我提问了很基础,很愚蠢的问题
请各位不吝指教,我会更加精进自己的 QQ
23F:推 s25g5d4:TonyQ大在用手机上PTT吗? 03/21 21:38
24F:→ TonyQ:是啊,你看我发文不附code通常就是手机 03/21 22:49
25F:推 s25g5d4:不 其实我是发现你.打成, XD 03/21 22:50
※ 编辑: kay1212 来自: 223.140.50.16 (03/22 01:54)
26F:→ kay1212:感谢各位的回答呀 QQ 03/22 01:54
27F:推 carlcarl:或者是用javascript建一个新的form 把要的值塞进去 03/22 02:46
28F:→ carlcarl:再用javascript submit这个form这样@@ 不过直接改action 03/22 02:47
29F:→ carlcarl:好像比较简单 上面的方法 03/22 02:47