2009-12-10 24 views
0

主窗口

// some javascript 
//some html 
//here ajax-call to load all divs 
//all divs hidden by default 
//based on user choice(from select option), show selected group of divs 
//click any shown div to call corresponding popup 

弹出窗口

//edit contents of that div. 
//on close i need 
1. refresh main window to load all divs 
2. select the previously selected user option(from select option) 
3. show corresponding divs only 
4. most important is i have to give the user the main page, 
    where they clicked the div before(not the page starting always!) 

我想和我留下 “$未找到错误”。有任何想法吗..?建议?

这是主窗口

 <script type="text/javascript" src="jquerymin.js"></script> 
     <script type="text/javascript"> 
     var visible_status=0; 
     function selectFn(sno){ 
     if(sno==1){ 
       $('#id2').hide(); 
       $('#id1').show(); 
       visible_status=1; 
     }else if(sno==2){ 
       $('#id2').show(); 
       $('#id1').show(); 
       visible_status=2; 
     } 
     } 

     function popitup(url) { 
      newwindow=window.open(url+'?parent_status='+visible_status,'name'); 
      if (window.focus) {newwindow.focus();} 
       return false; 
     } 
     </script> 
     <select name='optionw' 
     onchange="selectFn(this.options[this.selectedIndex].value);"> 
     <option value="">Select</option> 
     <option value="1">Div1</option> 
     <option value="2">All</option> 
     </select> 
     <div id='id1' style="display:none;">DIV1</div><!--by ajax i am loading--> 
     <div id='id2' style="display:none;">DIV2</div><!--these divs--> 
     <button onclick="popitup('popup.php');">popUp</button><br><!--and these--> 

popupwindow

<script type="text/javascript" src="jquerymin.js"></script> 
    <script type="text/javascript"> 
    var parent_status='<? echo $_GET[parent_status];?>'; 

    function closePopup() { 
     window.opener.history.go(0); 
     //alert('going to call parent selectFn('+parent_status+')'); 
     window.opener.selectFn(parent_status); 
     self.close(); 
    } 
    </script> 

...Here editing a part of the main page content... 
<input type=button value=close_popup onclick="closePopup();"> 

如果我在closePopup功能去掉注释,它按预期工作。任何帮助,使其工作没有任何线路。

+0

具体在哪里,你得到的$失败?第4步我猜? – Goyuix

+0

我用jQuery的步骤3中,但我没用过$(文件)。就绪事件。 bcoz,divs由ajax加载。之后,根据用户选择div显示或隐藏。如果我使用准备好的事件,我认为它会在页面加载时运行..所以我避免了。 – Kumar

+0

请将此问题重命名为任何对于在问题列表页面中查看它的人都是远程信息的! – ironfroggy

回答

2

我建议,也许你不链接到jQuery库正常,或有它在错误的顺序链接。你能提供更多关于你问的问题的细节吗?你想让代码做到这一点,或者你只是问有关没有找到jQuery对象?

+0

@jay我编辑了包含代码的问题。我想知道我错在哪里? – Kumar

+0

@jay谢谢你的尝试。GET中的双引号没有问题,它的工作正常。 如果我删除了closePopup函数中的注释,一切正常。但是,该警报对用户来说是一种噪音,所以我想将其删除。 – Kumar

+0

@kk所以你说的是,如果你有警报在那里,一切工作正常,所有的变数是正确的。如果你突然删除警报,你会得到“$未找到错误”? – Jay

1

GET萤火虫插件用于Firefox。加载页面..去萤火控制台..类型$如果它不说“()的函数”您还没有jQuery库正确

+0

感谢这个新的测试想法。 – Kumar

0

我试图理解你的问题;目前还不清楚你在描述什么。在您加载它之后(通过查看源代码),您显示的代码是否来自Web浏览器?还是在服务器上进行评估之前?

,如果你改变这一行,在弹出的会发生什么:

var parent_status='<? echo $_GET[parent_status];?>';

这样:

var parent_status=1;

+0

我目前正在尝试了解这个问题,但是据我所知,如果JavaScript为警报暂停,那么它可以很好地工作,否则会抛出提到的错误。 – Jay

+0

@Jay这就像他说的那样,但是他看起来并没有看到他正在展示的代码有一些奇怪的时间问题。 –

+0

@jay感谢您的支持,并发表评论。 – Kumar

0

据我所理解这里是下面的代码,并检查它如果这对你的作品:

粘贴主窗口中的代码:

<?php if(isset($_GET['parent_status'])): ?> 
$(document).ready(function(){ 
    selectFn(<?php echo $_GET['parent_status'] ?>); 
}) 
<?php endif ?> 

下面这段代码:

function popitup(url) { 
    newwindow=window.open(url+'?parent_status='+visible_status,'name'); 
    if (window.focus) {newwindow.focus();} 
     return false; 
} 

而且,与此代码替换弹出窗口里面的closePopup功能:

function closePopup() { 
    var href = window.opener.location.href; 
    if((pos = href.lastIndexOf('parent_status=')) >= 0) 
    { 
     var patt = new RegExp('parent_status=' + parent_status); 
     href = href.replace(patt, 'parent_status='+parent_status); 
    } else { 
     href = window.opener.location.href + '?parent_status=' + parent_status 
    } 
    window.opener.location.href = href; 
    self.close(); 
} 

希望这有助于。