2009-12-10 28 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(); 
} 

希望這有助於。