2011-07-12 8 views
5

Kullanıcıların html, css ve javascript içeriğini Ace Editor aracılığıyla göndermelerine olanak tanıyan küçük bir web uygulaması yapıyorum. Bu editörde, depolanan içeriği editöre yankılamak yeterlidir ancak yine de veritabanına kullanıcı girişi yapmak için bulamadım. JavaScript'in oluşturduğu bir textarea olduğunu görebiliyorum, ancak ne yaptığının tam olarak ne olduğundan emin değilim, ya da ona nasıl ulaşacağımı ya da tamamen başka bir şey aramam gerekiyorsa.PHP Web Uygulaması'nda Ace Editor

Öncelikle php'yi db'ye göndermek için kullanabileceğim bir alan veya bir şey arıyorum.

cevap

14

Düzenleme penceresinin içeriği, session getValue yöntemi ile kullanılabilir. Örneğin, aşağıda save dosyası için standart ACE demo bir uzantısıdır:

saveFile = function() { 
    var contents = env.editor.getSession().getValue(); 

    $.post("write.php", 
      {contents: contents }, 
      function() { 
        // add error checking 
        alert('successful save'); 
      } 
    ); 
}; 

ben demo.js. olduğunu zaten var olan "Sahte Kaydet" için saveFile çağrısı eklendi Böyle koduyla uyarı değiştirin:

$r = file_put_contents("foo.txt", $_POST["contents"]) or die("can't open file");

+0

Merhaba @Dave parlak kanlı Cevabıma –

+1

güncellemesini bakınız:

// Fake-Save, works from the editor and the command line. canon.addCommand({ name: "save", bindKey: { win: "Ctrl-S", mac: "Command-S", sender: "editor|cli" }, exec: function() { saveFile(); } }); 

php dosyası sadece bir çizgidir. Teşekkür ederim. Aynı sayfada üç tane editör var, bu yüzden ayırmak için sağladığınız AJAX posta kodunu nasıl kullanabileceğimi görebiliyorum. 'var htmlContents = env.htmlEditor.getSession(). GetValue(); var cssContents = env.cssEditor.getSession(). GetValue(); var jsContents = env.jsEditor.getSession(). GetValue(); ' Açıkçası ayrıca içeriği de değiştirmem gerekir: içerik bölümü. Teşekkürler, BAŞARINIZ! –

+0

Merhaba @Paul, AJAX Post olmadan bunu yapmanın bir yolu var mı? –