php
  • javascript
  • popup
  • 2012-05-23 107 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

    相关问题