2012-12-17 9 views
9

मैं CKeditor उपयोग कर रहा हूँ उपयोगकर्ताओं को एक पृष्ठ एक बार में लॉग इन पर सामग्री को संपादित इनलाइन करने के लिए अनुमति देने के लिएमैं सर्वर पर इनलाइन संपादक सामग्री कैसे सहेजूं? ।

मैं मैं का उपयोग कर डेटा का उपयोग कर सकते हैं:

var data = CKEDITOR.instances.editable.getData(); 

लेकिन मैं कैसे करने के लिए पता नहीं है डेटा को एक स्क्रिप्ट पर भेजें ताकि मैं डेटाबेस अपडेट कर सकूं। यह अच्छा होगा अगर स्क्रिप्ट प्रत्येक बार किसी ने contenteditable तत्व को अचयनित किया ... लेकिन मुझे नहीं पता कि यह भी संभव है या नहीं।

कोई भी सुझाव बहुत अच्छा होगा! :)

मेरी साइट php/mysql का उपयोग करके बनाई गई है।

उत्तर

20

कुछ इस तरह:

CKEDITOR.disableAutoInline = true; 

CKEDITOR.inline('editable', { 
    on: { 
     blur: function(event) { 
      var data = event.editor.getData(); 
      // Do sth with your data... 
     } 
    } 
}); 

ध्यान दें कि इस तरह के अन्य इंटरैक्शन साथ काम नहीं करेंगे: editor.setData() या उपयोगकर्ता बुलाया उपयोगकर्ता को बंद कर दिया संपादन करते समय वेब पेज। ऐसे मामलों में सामग्री खो जाएगी। अगर मैं तुम्हें थे, मैं नहीं बल्कि समय-समय पर नए डेटा के लिए जाँच चाहते हैं:

CKEDITOR.disableAutoInline = true; 

var editor = CKEDITOR.inline('editable', { 
    on: { 
     instanceReady: function() { 
      periodicData(); 
     } 
    } 
}); 

var periodicData = (function(){ 
    var data, oldData; 

    return function() { 
     if ((data = editor.getData()) !== oldData) { 
      oldData = data; 
      console.log(data); 
      // Do sth with your data... 
     } 

     setTimeout(periodicData, 1000); 
    }; 
})(); 
+1

क्या आईडी के बजाए एक विशिष्ट वर्ग पर सीकेडिटर को कॉल करना संभव है - क्योंकि मेरे पास पृष्ठ पर एक से अधिक क्षेत्र संपादित करने के लिए है। –

+0

अपने तत्वों के लिए 'contenteditable = "true" जोड़ें और' CKEDITOR.disableAutoInline = false' सेट करें। – oleq

+0

तो मैं कैसे बिना कलंक पर सक्रिय होने CKEditor मिलता है: 'CKEDITOR.inline ('शीर्षक', { \t \t \t \t पर \t: { \t \t \t \t \t \t कलंक: समारोह (घटना) {' ' –

1

ऐसा लग रहा है "कलंक" घटना आप मदद कर सकता है: http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#event:blur

+0

ठीक है, तो आप कैसे जानते हैं कि "संपादक" तब होता है जब आपके पास पृष्ठ पर बहुत से संतोषजनक = सही तत्व होते हैं, लेकिन आप नहीं जानते कि उनमें से एक सक्रिय होने जा रहा है (या हो सकता है कि आप ' टी यह भी पता नहीं है कि तत्व प्रारंभिक रूप से क्या होंगे क्योंकि कुछ गतिशील रूप से जोड़े जा सकते हैं।) CKEDITOR.on का उपयोग करने के लिए प्रतीत नहीं होता है (घटनाओं को कभी नहीं बुलाया जाता है) – Michael

+0

मैंने क्या किया, मैं डेटा के आधार पर संपादकों को गतिशील रूप से बनाता हूं, कभी-कभी एक, कभी-कभी दस और इतने पर। इस परिदृश्य में, मेरे स्क्रिप्ट में "संपादक" उदाहरण था। यह वैश्विक "CKEDITOR.on" नहीं था लेकिन सटीक उदाहरण "editor.on" था। तो मैं बिल्कुल हर उदाहरण पर सटीक "धुंध" घटना को परिभाषित करने में सक्षम था। आम तौर पर यह एक साधारण कार्य था जो एक संदेश भेजता है "डेटा ले लो (editor.getData()) और इसे" सर्वर के साथ बोलने वाले भाग एप्लिकेशन पर भेजें। –

3
CKEDITOR.inline('editable' ,{ 
     on:{ 
      blur: function(event){ 
       if (event.editor.checkDirty()) 
        console.log(event.editor.getData()); 
      } 
     } 
    }); 

इस प्रयास करें।

संबंधित मुद्दे