jquery fancybox 2 を使用して iframe フォームをロードしています。フォームはデータを送信してデータベースに書き込み、ファンシーボックスを閉じます。それで、その部分はすべて良いです。ただし、iframe フォームから隠しフィールドの値を取得したいと考えています。この値は、親ページの対応する ID を非表示にします。beforeClose オプションを使用して隠しフィールドの値を取得しようとしました。ただし、隠しフィールドの値を取得できません。
非表示フィールドにはページロードがあります。ファンシーボックスコード:
$(".various").fancybox({
maxWidth : 800,
maxHeight : 700,
fitToView : false,
width : '70%',
height : '90%',
autoSize : false,
closeClick : false,
openEffect : 'fade',
beforeClose : function(){
var pageload = $('#pageload').val();
console.log('var = ' + pageload);
},
afterClose : function(){
if(pageload != 0){
$('#'+pageload).slideUp('slow');
} else {
window.location.reload(true);
}
}
});
ファンシーボックスは次のようにトリガーされます:
<a href="editcategory.php&pageload=<?php echo $sub_id; ?>" class='various' data-fancybox-type='iframe'>LINK</a>
iframe popsup がある場合:
<input type="hidden" value="<?php echo $_GET['pageload']; ?>" id="pageload" name="pageload" />
あとは、pageload の値を afterClose 関数に返すだけです。afterLoad 関数を使用して値を取得しようとしましたが、 beforeClose 関数を使用しましたが、null 以外の答えが得られないようです。これにより、そのIDが「スライドアップ」され、インデックスページでクリアされます。
値が 0 の場合、ページのリロードが行われます。
私は一日中答えを探しましたが、おそらく単純な2行の機能に対しては非常に複雑に見えます。