2010-01-20 23 views
34

tôi có một trang manageGroup.php, nơi người dùng cũng có thể thêm thành viên vào nhóm. Tôi đã sử dụng hộp màu để hiển thị addGroupMember.php. Bây giờ tôi cần phải đóng hộp màu đó một lần tôi đã thực hiện gửi biểu mẫu.cách đóng hộp màu trong iframe?

javascript tôi đang sử dụng trong manageGroup.php

<script language="javascript" type="text/javascript" src="js/jquery-1.3.2.js"></script> 
<script type="text/javascript" src="js/dropdown.js"></script> 
<script type="text/javascript" src="js/jquery.colorbox.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 
$(".iframe").colorbox({width:"80%", height:"80%", iframe:true}); 
}); 
</script> 

Các liên kết tôi đang sử dụng để mở hộp thuốc vẽ

<a class="iframe" href="addGMember.php?id=<?php echo base64_encode($fetch->g_id)?>">Add Member</a> 

mã trong addGroupMember.php là như thế này: -

if($_POST['add']=="Go") 
{ 
    $gid = $_POST['id']; 
    $ii=0; 
    $insert = "INSERT INTO ".DBGMEMBER." (gm_g_id,gm_m_id) VALUES "; 
    foreach($_POST['gMember'] as $gMember) 
    { 
    if($ii==0) 
    { 
     $insert .= " ('".$gid."' , '".$gMember."')"; 
    } 
    else 
    { 
     $insert .= " ,('".$gid."' , '".$gMember."')"; 
    } 
    $ii++; 
    } 
    $db->execute($insert);// after this i want to close the colorbox 
    echo "<script>parent.$.fn.colorbox.close(); </script>";// code i used, but not working 
} 
+1

Nếu vẫn không hoạt động, bạn có thể sử dụng một cái gì đó như ' 'và nó sẽ thực hiện công việc. –

Trả lời

8

Đầu tiên: Xây dựng câu hỏi cho bạn. Thông tin bạn đã cung cấp là một số thông tin được viết tắt. Không có cơ hội nào có thể nắm lấy những gì bạn đang làm. Cũng bao gồm một số mã mẫu khác.

Điều duy nhất tôi có thể đoán là bạn đang cố gắng kích hoạt phương pháp trong cách viết. Mọi thứ bạn thêm vào đối tượng $ .fn đều ràng buộc với tất cả các đối tượng jQuery.

// doesn't work 
$.fn.colorbox.close() 
// proper way 
$('idOfDomElement').colorbox.close() 

..fredrik

+0

hi fredrik, tôi đã đăng một mô tả chi tiết cho vấn đề của tôi. nhưng tôi đã không có điểm của bạn bằng cách sử dụng $ ('idOfDomElement'). colorbox.close(). –

+0

Bạn có thể thêm mã javascript nơi bạn mở hộp màu không? – fredrik

+0

mã javascript được thêm –

1

Tôi chỉ cố gắng để đóng hộp thuốc vẽ từ bên trong iframe nhưng couldn`t nhận được nó để làm việc. Tôi đã sử dụng $ ('# closebox'). Colorbox.close() và không có bất kỳ may mắn nào.

+1

'parent. $ ('# Closebox'). Colorbox.close()' sẽ hoạt động. – webnoob

2

Tôi nghĩ rằng vấn đề là hộp màu thuộc về cha mẹ, chứ không phải DOM trong khung nội tuyến.

Tôi đoán bạn sẽ cần phải gọi cho cha mẹ. [Cách để lấy phần tử hoặc đối tượng $ .fn] .colorbox.close() hoặc bạn sẽ cần thêm hàm vào tài liệu gốc và gọi cho cha mẹ. myCloseFunction()

+0

10x. Cách này hoạt động tốt cho tôi. – Dichev

16

tôi đã hoàn thành công việc cho tôi, một chút điên rồ, dù sao bạn cũng có thể thử.

Giả sử trang của bạn trong iframe như x.php có dạng tên xyz

<?php 
    if($_post['submit']=='Submit') 
    { 
    //some php code here 
    if(success) 
    echo "<script>parent.$.fn.colorbox.close(); </script>"; 
    else 
    { 
     //some error handling here; 
    } 
    } 
?> 
<form name='xyz' action='x.php'> 
//some html code here 
<input type='Submit' name='submit' /> 
</form> 
4

Hãy chắc chắn rằng trang nạp trong iFrame. Tất cả các tham chiếu cần thiết cho jbox colorbox, js jQuery là không cần thiết.

Sau đó, phụ huynh gọi gần sẽ làm việc:

parent.$('.yourElement').colorbox.close(); 
+0

Trên thực tế, tôi chỉ cố gắng này trên một trang trống bằng cách chỉ sử dụng và nó hoạt động! Không có tiêu đề, không có các thẻ khác, không có gì ngoại trừ chức năng. Sử dụng trình duyệt Chrome, dunno về IE hoặc FF. – Derek

+1

parent. $ ('# Colorbox') chọn đúng (được xác minh trong firebug), nhưng bạn sẽ không nhận được thêm. $. fn.color.close() nó là. (Tôi tự hỏi nếu colorbox thực sự là 100% singleton trong tất cả các kịch bản, dù sao nó hoạt động ...) –

67

một này làm việc ra một cách hoàn hảo đối với tôi và sẽ làm việc cho bạn

 

parent.jQuery.colorbox.close() 
 
+6

Để bỏ qua một số rắc rối với $ tôi khuyên sử dụng parent.jQuery.colorbox.close(); –

+0

điều này làm việc cho tôi. cảm ơn bạn = D – azzy81

+0

Làm việc hoàn hảo! Cảm ơn. Tôi đã thử cho iframe jQuery ('# cboxClose'). Click(); và jQuery (cửa sổ) .colorbox.close(); Nhưng không làm việc. Mã của bạn rất tuyệt. –

4

chỉ này

parent.$.colorbox.close() 

dường như làm việc cho tôi!

Tôi đã sử dụng nó như thế này mà không cần tham chiếu đến bất kỳ JS nào trong tệp được tải vào khung nội tuyến.

<a href="javascript:parent.$.colorbox.close()">close</a> 

điều này một mình trong tệp HTML trống dường như hoạt động.

+0

Có, dường như những người sáng tạo của Colorbox khá thông minh ... – Derek

0

Tôi không quản lý để đóng Hộp màu bằng các giải pháp được đề xuất. Tôi nhận được cha mẹ không xác định ... Vì vậy ..


tôi thấy mất một cách tiếp cận khác nhau:

tài liệu

Trang chủ: (iframe: false) này sẽ mở ajax_page trong DIV trong cùng một tài liệu

$(document).ready(function(){ 
    $("#modalwindow").colorbox({ 
     width:"800px", 
     height:"510px", 
     iframe:false, 
     href:"../ajax_page.php", 
    }); 
}); 

và trong ajax_page

$('#modalwindow').colorbox.close(); 

Hy vọng điều này sẽ giúp

1

Có một giải pháp đơn giản mà tôi sử dụng.

tôi đặt <a id="btnDone" href="#">here</a> mã bên này hoặc bạn có thể sử dụng trình của bạn id nút và

$(document).ready(function() { 
     $("#btnDone").click(function() { 
      window.parent.location = "../siparisler/listele.aspx" 
     }); 
} 

cách này u có thể chuyển hướng trang mẹ. và hộp màu tự động đóng. nếu bạn không cần chuyển hướng chỉ cần đặt "#" cho window.parent.location

Các vấn đề liên quan