MySQL Jquery ajax yazılan satır sonlarını istinat değil?

3 Cevap php

Kullanıcıların bir forma metin göndermek sağlayan bir PHP / MySQL uygulaması var. Benim mysql tabloya bir HTML textarea metin eklediğinizde, o satırbaşları / satır sonlarını tutmak değil. Metin "Hey SO, \ n Bu yeni bir çizgidir" olarak DB saklanmaz. (O yazdığınız tam olarak gibi) sütununda boşluk ile saklanır, ama nl2br() ile çıktı o benim için bir yolu yoktur ve sonları devam edecek. Ben şöyle metni takmadan önce kaçan ediyorum:

$foo_text = mysql_real_escape_string(ucfirst($_POST['foo_text']));

Ben her şeyi kaldırmak ve sadece POST parametresini kullanın Ama bile, yine aynı şeyi yapar. Bu bana (jQuery kullanıyorum) serializing ve ajax ile bu formu gönderme ile ilgisi var mıydı? I this on stackoverflow buldum, ama gerçekten bir çözüm görmüyorum. Ben ile ilanıyla:

$.ajax({
        type: "POST",
        url: "insertFooBar.php",
        data: $("#foo_form").serialize(),
        success: function(msg) {
            ETC...
        }
    })

Burada kaçırıyorum gerçekten belirgin bir şey var mı? Ben şaşırıp ...

Herhangi bir yardım için şimdiden teşekkür ederiz!

3 Cevap

Cevaplar için teşekkürler. Ben serialize () kaldırma ve bir dizge olarak elle her bir parametre göndererek sona erdi. I $("#foo_bar").replace( /\n/g, '<br>' )) geçici bir çözüm olarak benim textarea ve şimdi benim sonları alıyorum ekledi. Ben o iş yapmak için bu kesmek zorunda istemezdim, ama o işi alır.

Sorun serileştirme% D0% DA, but jQuery encodes it as %0A gibi bir satır sonu kodlamak gerektiğidir.

Ben buldum sadece (görgüsüz) çözelti daha sonra gibi bir yedek fonksiyonu ile değiştirin, form tefrika dize almak oldu:

fonksiyonu keepLB (str) {

var reg=new RegExp("(%0A)", "g"); return str.replace(reg,"%0D$1"); }

Tefrika dize değiştirilmiş sonra, i $. Mesajı () işlevini kullanarak gönderin.

Bunun yardımcı olacağını umuyoruz!

Ben normalde veya AJAX kullanarak gönderilen formu ya, veritabanına bir HTML form verilerini ekleme herhangi bir sorun var asla.

AJAX olmadan formu göndermek için denemek mi? Sonuç nedir? Sana jQuery form plugins kullanmak önermek istiyorum bu yüzden elle AJAX isteği yapmak zorunda değilsiniz.

Ben de size AdoDB veritabanına verileri kaydetmek için kullanmak önermek istiyor değilim. Bu kütüphane büyük bir çapraz-veritabanı soyutlaması. Insert / veri güncelleme ne zaman herhangi bir sorun bulamadım, tüm değer öncelemeli otomatik olarak yapılır. İşte kullanarak güncelleme yapmak için örnek bir yoldur AdoDB:

$data['foo_text'] = ucfirst($_POST['foo_text']);
$adodb->AutoExecute($tablename, $data, 'UPDATE', "id=$id");

Ben bu kütüphaneler size yardımcı olacağını umuyoruz.