jquery metin alanı sorunu

5 Cevap php

ben bir metin alanı var

        <textarea name="message" id="message" class="text_field" style="height:200px; width:500px"></textarea>

Ben bu gibi metin alanına veri yazarsanız

        hello
        this is my test message

        bye
        'abc'

i metin alanından veri almak için aşağıdaki deyimi kullanın

     var message = $('#message').attr('value');

i diğer php dosyası gibi, bu değeri geçmek

      var data = {message:message};
 $.ajax({
 type: "POST",
 url: "show.php",
 data: data,
 etc

when i see data in post value firebug in show exactly i type the data (with new lines & spaces etc) and in php file

          $message=$_POST['message'];

           $Content = file_get_contents($temp_page);
           $Content = str_replace('%%a%%', $message, $Content);

Şimdi ne zaman i kullanın

             echo $Content

i kesin i metin alanına yazın değil bir hat tüm metin olsun ...

          hello this is my test message bye 'abc'

Teşekkürler

5 Cevap

Tarayıcılar olduğu gibi çıktı yazdırmak için tanımlanan textareas ya da diğer elementlerin dışında satırsonlarını baskı, örneğin, <pre> yok olmasıdır.

Sen echo nl2br($Content); (x) HTML bir satır eşdeğer <br /> elemanları ile satırsonu yerine kullanmanız gerekir.

Eğer tarayıcı düz yankılanan ediyorsanız, sayfanın kaynağını inceleyen deneyin. Bunu tüm boşluk ve satırsonlarını çökecek durumda, tarayıcı HTML olarak metni yorumlama olduğunu görebilirsiniz. Kaynak görüntüleniyor teoride vb satırsonlarının, ekstra alan, başlangıçta yazdığınız ne göstermelidir

Eğer sadece bu gibi bazı HTML kaynağı yazdığınız ne olur düşünün:

<p>
  Hello there.
     This is 
  my

       HTML

  source, and I hope

                     you

      like it.
</p>

Bu neye benziyor? Sağ - tarayıcı basit boşluk olarak tüm bu satırsonlarını tedavi ve boşluk olmayan karakterleri bırakır gibi tüm çökecek.

Eğer textarea içeriğini dökümü zaman: Eğer aynı şeyi yapıyoruz (arada $('#whatever').val() ile değeri olsun). Eğer biçimlendirmeyi korumak istiyorsanız, evet, bu bir baş ağrısı olabilir. Bir <pre> bloğuna koyarak deneyebilirsiniz, ya da açıkça satırsonlarını bulmak ve <br> elemanlarının onları dönüştürmek gerekebilir.

edit: istediğiniz php fonksiyonu için Tatunun cevap @ bakın.

Sağ tıklayın ve 'Source' (ya da bazı yakın eşdeğer) tıklarsanız, düzgün biçimlendirilmiş metni görmelisiniz. Bu HTML çalıştığını şekilde kaynaklanmaktadır. Eğer aşağıdaki HTML yazmak bile:

hello
this is my test message

bye
'abc'

Çıktı inline olacak. Her satırdan sonra />
metni kaydırmak zorunda tag.

Belki deneyebilirsiniz:

nl2br($Content);