2012-03-31 8 views
0

今、私は、特定のタイプのノードを作成するためのカスタムフロントエンドインターフェイスを統合しているDrupalサイトを持っています。このカスタムの「インターフェース」エリアは、ノード作成ページの最上部に埋め込まれています。Drupal CCKフィールドとJQueryダイアログ

ノードのCCKフィールドは、フィールドグループモジュールを使用して一緒にグループ化されます。私は、ユーザーがボタンを押したときにjQueryのダイアログにFIELDGROUPを引っ張るために、次のコードを使用しています:

var options = { 
    dialogClass: 'customDialog', 
    autoOpen: false, 
    draggable: false, 
    modal: true, 
    resizable: false, 
    height: 'auto', 
    width: 'auto', 
    title: 'Configure Options', 
    show: 'fade', 
    hide: 'fade', 
    buttons: { 
      'Update': function(){    
       $(this).dialog('close'); 
     } 
    } 
}; 

// open windows 
$("#inputButton").click(function() { 
    var dlg = $('.group_input').dialog(options); 
    dlg.css('min-width', '500px').css('max-height', '300px'); 
    dlg.dialog('open'); 
}); 

すべてが-OKとダイアログの負荷まで動作します。しかし、ユーザが「更新」ボタンを押してダイアログを閉じると、CCKフィールドは新しい値で更新されていない。

1つのフィールドをダイアログに読み込むと同じことが起こるので、Fieldgroupモジュールの問題ではないことが分かります。私はこの問題を解決しようとしている日々を探してきました。誰もこの問題を抱えていないようです。どんな入力も高く評価されます。

EDIT:私は解決策を持っているし、8時間の制限が:(

答えて

0

OKを渡したら、それを掲載する予定ですので、私はついにそれを考え出したjQueryのダイアログにノードのCCKフィールドをロードするに興味がある人のために。 。それが閉じているとき、あなたは、フォームに戻って、ダイアログの要素を追加した場合、それが唯一のフォームの値を更新しますこれは、jQueryのダイアログが実際にロードされたコンテンツを破壊するために起こるように見え、次のように

正しい実装は次のとおりです。

var options = { 
    dialogClass: 'customDialog', 
    autoOpen: false, 
    draggable: false, 
    modal: true, 
    resizable: false, 
    height: 'auto', 
    width: 'auto', 
    title: 'Configure Options', 
    show: 'fade', 
    hide: 'fade', 
    buttons: { 
     'Update': function(){    
     $(this).dialog('close'); 
     } 
    }, 
    **close: function(event, ui){ 
     $('#the-form-name').append($(this)); 
    }** 
}; 

// open windows 
$("#inputButton").click(function() { 
    var dlg = $('.group_input').dialog(options); 
    dlg.css('min-width', '500px').css('max-height', '300px'); 
    dlg.dialog('open'); 
}); 

これは、誰かが同じ問題を抱えているのを助けてくれることを願っています!

関連する問題