php
  • javascript
  • popup
  • 2012-05-23 50 views 0 likes 
    0

    我有一個打開彈出頁面的父頁面。在彈出頁面上,用戶可以選擇一個傳回父頁面的值。Javascript將值從彈出頁面傳遞給父項

    父頁上的代碼片段是:

    <script type="text/javascript"> 
    function selectValue(id) 
    { 
        // open popup window and pass field id 
        window.open('sku.php?id=' + encodeURIComponent(id),'popuppage', 
         'width=400,toolbar=1,resizable=1,scrollbars=yes,height=400,top=100,left=100'); 
    } 
    
    function updateValue(id, value) 
    { 
        // this gets called from the popup window and updates the field with a new value 
        document.getElementById(id).value = value; 
    } 
    
    </script> 
    

    和塔彈出年齡的代碼片段是:

    <script type="text/javascript"> 
    function sendValue(value) 
    { 
        var parentId = <?php echo json_encode($_GET['id']); ?>; 
        window.opener.updateValue(parentId, value); 
        window.close(); 
    } 
    </script> 
    

    我需要改變彈出頁面的代碼,以便用戶可以選擇一個將他們帶到另一個頁面的類別(仍然在彈出頁面中)。現在,在此頁面中,他們選擇該值,但不會在父頁面更改時傳回父頁面。

    何我可以編輯彈出代碼以指向原始父頁面嗎?在我的情況下,父頁面是newsalea.php。我可以做些什麼:

    <script type="text/javascript"> 
    function sendValue(value) 
    { 
        var parentId = <?php echo json_encode($_GET['id']); ?>; 
        window.opener.updateValue(newsale.php, value); 
        window.close(); 
    } 
    

    這樣我硬編碼parentid到彈出頁面?這可能嗎?

    感謝, 瑞安

    +4

    它是否必須是一個新窗口。你可以使用模態div嗎? – Dve

    +2

    是的,不要使用彈出窗口。他們是可怕的用戶體驗,通常非常惱人。 – ThiefMaster

    +0

    嗨戴夫,葉,它必須是一個新的頁面,因爲家長有超過150行,所以不能讓div出現在正確的位置供用戶選擇一個選項。謝謝, – Smudger

    回答

    2

    無需使用window.open您可以使用彈出式JavaScript庫像jquery dialoge!或fancybox,並簡單地說parent.div =您的值

    +0

    謝謝,我的價值是什麼?newsale.php? – Smudger

    +1

    值來自你的函數updateValue – Rami

    相關問題