2009-06-08 18 views
15

jQuery'de çok iyi değilim ama sitem için jEditable eklentisini kullanmaya karar verdim çünkü iyi göründüğünü ve amacın çözüldüğünü düşündüm. Ancak, şimdi biraz karışıklık içerisindeyim.jquery (jeditable) karmaşasından nasıl çıkılır

Verileri düzenlemek için bu eklentiyi kullandım ve düzenlenmiş veriler DB'ye gönderilir ve bazı alanlar tarafından güncellenir. Bu alanları güncelleyen Saklı yordam bazı verileri geri döndürüyor. Bu verinin bana geri döndürülmesini istiyorum. Sadece geri verilen verileri bir 'uyarı' ifadesinde görmek isterim, sonra oradan alabilirim.

Bu eklentinin geri arama yönteminin yalnızca değeri ve ayarları vardır.

Bu eklentiyi kullanırken sunucudan bazı verileri geri almanın bir yolu var mı?

cevap

3

Güncelleştirmeleri gönderdiğiniz URL (PHP, JSP, Java sunucu, vb. Gibi bir çeşit dinamik sayfa olacak) geri dönüş değerini saklı yordamdan yanıta ekliyor mu? Eğer öyleyse, bu verilerin geri çağrıya geçtikleri "değer" alanında görünmesini beklerdim.

jEditable çevrimiçi demosunu kullandığımda, yanıt yalnızca güncellenmiş metni içerir, ancak bu, kullandıkları belirli PHP kodunun bir işlevidir ve jEditable javascript koduyla ilgili hiçbir şey yapmaz.

0

jEditable, jquery ajax yöntemleri etrafındaki sarıcıdır. Tüm jEditable çağrılarınızı jquery'nin yerel ajax yöntemini kullanan çağrılarla değiştirmek çok zor olmamalıdır.

jEditable'ın 'callback' adlı geri çağrısını jquery'nin ajax işlevindeki geri arama adı olan 'success' ile değiştirebilirsiniz.

14

Sitem için tam olarak bunu yaptım. Bu senin başlamanı sağlamalı.

$("#editable_text").editable(submitEdit, { 
      indicator : "Saving...", 
      tooltip : "Click to edit...", 
      name : "Editable.FieldName", 
      id : "elementid", 
      type : "text", 
}); 
function submitEdit(value, settings) 
{ 
    var edits = new Object(); 
    var origvalue = this.revert; 
    var textbox = this; 
    var result = value; 
    edits[settings.name] = [value]; 
    var returned = $.ajax({ 
      url: "http://URLTOPOSTTO", 
      type: "POST", 
      data : edits, 
      dataType : "json", 
      complete : function (xhr, textStatus) 
      { 
       var response = $.secureEvalJSON(xhr.responseText); 
       if (response.Message != "") 
       { 
        alert(Message); 
       } 
      } 
      }); 
    return(result); 
} 

formun

{ "Mesaj" = "FOO"}

bir Json tepkisini dönmek gerekir Ve bu uyarı görüntülenecektir.

+0

+1 Gönderme düğmesini kendi oluşturduğunuz düğmeye bağlamak mümkün mü? – Roylee

+0

Küçük nitpick, ama bu Json yanıtı * oldukça * Json ... 's/= /: /' :-) – mgilson

9

Ben de bu sorunu çözmek için çalışıyor klasik ASP çalışıyoruz ve ben de burada sona erebilir gibi diğerlerini düşündüm. Burada klasik ASP bu sorunu çözdük edebilirsiniz:

den

Başarısız sunucu doğrulama ... yanıtı whatever.asp

<% 
response.status "406 Not Acceptable" 
response.write "error message here" 
response.end 
%> 

ne olursa olsun hata mesajı onerror: erişilebilir gönderilen whatever.asp ve alan orijinal değerine sıfırlanacaktır. (ve eğer değer sunucu doğrulamadan geçerse, yalnızca yanıt.dokümantasyon o "değer" burada söylemez ne yapar

'callback': function (value, settings) { 
... 

: dokümantasyon 'geri çağırma' işlevi ilk parametre "değer" olduğunu söylüyor) güncellendi değer ne olursa olsun

+1

+ 1 ama belgelenmiş gibi görünmüyor. Ancak, 403'ün özellikle Accepts başlığıyla ilgili olduğu için 403'ten daha uygun olacağını düşünüyorum. – Brilliand

0

yazma sunucu ne yazıyorsa onu. Ham değerle sınırlı değildir. Ben JSON kodlanmış bir yapıya geri göndermek, böylece benim geri arama işlevi ilk satırı şudur:

var updateInfo = JSON.parse(value); 

Sonra updateInfo yapısından alanları gerektiği gibi çekin.

İlgili konular