Yüklemeden textarea içeriği MySQL ile güncelleniyor

9 Cevap php

Ben düzenleme için bizim MySQL db içeriğini yükleyen bir sayfa inşa ediyorum. Her tablo satırında sayfasında ayrı düzenlenebilir textarea olduğunu. Bu belirli textarea için sorumlu bir düğmeye bir tıklama ile tüm sayfayı yeniden olmadan (yani db içeriğini oluyor göndermek) her satırı güncellemek için muktedir kullanıcı gerekiyor.

Böyle prosedür bazı JavaScript dahil olacağını anlıyorum, ama ne yazık ki hiçbiri biliyorum - Ben php ile geleni yaptım, bu yüzden bu yönde bir işaret gerekir. Temelde benim soru (bence) nasıl düzenlenmiş bir textarea metin kapmak ve sayfayı yeniden olmadan MySQL göndermek mi olduğunu. Ben yanlış yöne gidiyorum ben diğer önerilerinizi duymak daha istekli olurdu.

9 Cevap

Evet, bu javascript gerektirir. Eğer varsa bir PHP sayfası yani bir zaman uyumsuz çağrı. Bu genellikle AJAX olarak adlandırılır.

Ben burada "kullanımı jquery" cevap olmak istemem ama jQuery tabanlı arama AJAX kullanmayı öğrenme kambur böyle aramalardan kazanç değerine çok düşüktür.

Belgelerine sahiptir great examples ve çoğu oldukça basit.

Bu AJAX yaptığı şey tam da budur: Asynchronous JavaScript ve XML. Bu sayfayı yeniden olmadan sunucuya istekleri göndermenizi sağlar.

I jQuery hangi farkedeceğiniz ile başlayan tavsiye ederim başka bir StackOverflow toplumda destek sürü yanı sıra vardır ve çapraz tarayıcı AJAX istekleri çok kolay yapar.

Sayfanızda jQuery komut ile, böyle bir şey yapabilirsiniz:

$("#id-of-the-button-the-user-will-click").click(function() {
    $.post('/path/to/your/script.php', { field1: value1, field2: value2 }, function(data) {
        // This function is called when the request is completed, so it's a good place
        // to update your page accordingly.
    });
});

Ayrıntıları anlamak hala çok gerçekten yapmak için en iyi şey de dalış, JavaScript ayrıntılı bir anlayış gerektirir ve JavaScript bir sürü yazı (ve dolayısıyla öğrenme) başlayacak. AJAX başlamak için iyi bir yerdir.

İyi bir var introduction to JavaScript at Opera. Jibbering sayfayı terk etmeden sunucuya veri göndermek için olağan bir yol olan, the XHR object kullanımını kapsar. Böyle YUI veya jQuery sizin için ağır kaldırma bazı yapabileceğiniz gibi kütüphaneler.

Ne aradığınız AJAX. jQuery bu kolay bir sürü yapar; try starting here.

Sen textarea için JavaScript olay ekleyebilirsiniz:

onblur="sendUpdate(this.value)"

Kullanıcı metin düzenleme bitmiş ve giriş bırakır olduğunda bu olay olur.

Örnekte, "bu" referanslar geçerli textarea bileşeni.

Daha önce belirtildiği gibi, ve daha sonra, Ajax kullanın. Bir örnek olacaktır:

function sendUpdate (text) {
  $.post('script.php', {textarea_value:text},function(){});
}

Eğer komut (javascript) den sunucuya asenkron çağrı yapmak gerekir. This.You istemci tarafı komut dosyası (javascript) gelen sunucu / veritabanı ile iletişim kurmak için XMLHttpRequest nesnelerini kullanarak bakmak gerekiyor ulaşmak için ajax kullanın. Bunun yerine, bir düğme tıklama olay veya bir onBlur olay veya bir onTextChange olay vb javscript kod çağırabilirsiniz, bir düğmeye tıklama ile tüm sayfayı göndermeniz gerekmez ..

jQuery Bu uygulamak için kod satır sayısını azaltmak için yardımcı olan bir JavaScript çerçeve kütüphanedir. Ama onun size jquery kullanmak gerekmez gerekli olduğunu. Siz jQuery jquery.Usage hatlarının sayısını azaltacak kullanmadan ajax aramaları yapabilirsiniz.

Bu edin

http://docs.jquery.com/Ajax/jQuery.ajax

Kesinlikle JavaScript, ve sayfayı yeniden olmadan PHP sunucusuna bir HTTP isteği göndererek bazı yöntem gerektirir. Genel olarak, bu AJAX olarak adlandırılır.

AJAX JavaScript geliştiricileri başlayan için biraz karmaşık olduğu gibi, bir JavaScript kütüphanesini kullanmak için muhtemelen en iyisidir. Iyi bir seçim JQuery, ya da MooTools

AJAX kütüphaneleri genellikle XMLHttpRequest kullanın veya JSONP HTTP isteklerini uygulamak. Bu anlama biraz daha kolay yapmak gerekir.

, Textarea öğesini seçerek bu güncelleme kullanımını gerektiren DOM (http://www.w3.org/DOM/). Çoğu JavaScript çerçeveler şimdi DOM sorgulamak için CSS veya XSLT seçiciler bir uygulama kullanın.

JavaScript olmadan bu cezayı yapabilirsiniz. Sadece kendi

her textarea + düğmesi var, sonra textarea değerinden veritabanını günceller ve bir döndüren bir komut dosyası için form gönderebilirsiniz:

204 No Content

durum yerine 200 OK ve yeni bir sayfa. Eski sayfa koymak kalacak.

Ajax hakkında daha fazla bilgi için deneyin. Bunun için kütüphanelerin bir yeri vardır.