Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][AJAX] Dynamiczne pole textarea
Forum PHP.pl > Forum > Przedszkole
Kredka29
Robię pewnego rodzaju system bloga, i mam u góry sztywny szablon z ograniczeniem na ilość tekstu.
Poniżej jest pole textarea.

Jak zrobić, aby to co wpiszę w textarea od razu pojawiało się w tym szablonie?
Chodzi mi o to, żeby cała akcja "przenoszenia tekstu" nie wykonywała się gdy kliknę na inną część strony, tylko po każdej zmianie tekstu i bez przeładowania strony
Spawnm
w js przy każdym wywołaniu onkeyup pobieraj treść z textarea i umieszczaj ją w swoim polu / divie.
Najłatwiej ci to będzie zrobić z jquery .

jeśli ma to lecieć dodatkowo do php/mysql to poczytaj o .load()
vokiel
Jeśli tylko w treści strony, nie zapisywane nigdzie więcej to wystarczy nawet:
  1. <input type="text" id="jeden" value="" />
  2. <textarea id="dwa" onkeyup="javascript:document.getElementById('jeden').value=this.value;"></textarea>


Natomiast jeśli ma być gdzieś zapisywane, to do zdarzenia onkeup dla textarea trzeba wywołać ajaxa. Ale chyba nie load, a raczej post lub get
  1. <?php
  2. $(document).ready(function(){
  3.    $('#dwa').keyup(function(){
  4.        $.post(
  5.                'skrypt.php',
  6.                {textarea: $(this).val()},
  7.                function (data){ /* wyswietlenie gdzies wyniku zapytania jesli ma być */}
  8.        );
  9.    });
  10. });
  11. ?>

skrypt.php
  1. <?php
  2. if (!empty($_POST['textarea']){
  3.    //zapis do bazy czy co tam jeszcze
  4. }
  5. ?>
Kredka29
To ma służyć jako - że się tak wyrażę - podgląd strony z edytowanym teksem. Tylko mam problem, aby wyświetlić wartość tego pola jako zwykły tekst w konkretnym miejscu. Próbuje cały czas z divem ale nie wychodzi...
erix
Pokaż, jak próbujesz.
Kredka29
Możliwe że idę drogą okrężną...

...
  1. [...]<div>
  2. <script type="text/javascript">
  3. function podglad()
  4. {
  5. var to = document.getElementById('dwa').value;
  6. document.write(to);
  7. }
  8. </div>
  9. [...]
  10. <textarea id="dwa" onkeyup="javascript:podglad()"></textarea>


Albo głupi błąd, albo brak doświadczenia. Ale po wywołaniu podglad() wychodzi biala strona z treścią textarea...
erix
Nie document.write, tylko obiekt.innerHTML...
Kredka29
Kod
<script type="text/javascript">
function podglad()
{
var to = document.getElementById('dwa').value;
document.getElementById('name1').innerHTML = to;
}
</script>

Działa bez zarzutów, dzięki smile.gif

I pojawił się następny problem.
NIE WYŚWIETLAJĄ SIĘ ENTERY...

Co mogę poradzić?
Spawnm
js chyba nie ma nic do łamania, chyba że replace ...
daj 'pre' w html, ew. w php nl2br" title="Zobacz w manualu PHP" target="_manual.
erix
~Spawnm, ma:
Kod
text = text.replace(/\n\r?/g, '<br />');
Kredka29
Cały plik jest w PHP...
  1. <div id=\"jeden1\" style=\"font-family: Arial; color: #6d3e00; font-size: 15px; \">
  2.  
  3. <script type=\"text/javascript\">
  4. function podglad()
  5. {
  6. var to = document.getElementById('mytxtarea').value;
  7. document.getElementById('jeden1').innerHTML = to;
  8. }
  9.  
  10. </div>

  1. <textarea name=\"mytxtarea\" id=\"mytxtarea\" class=\"ed\" style=\"font-family: Arial; border-color: #FFFFFF; border-width: 1px; background-color: #925300; border-style: solid; width: 700px; height: 200px; color: #FFFFFF;\" onkeyup=\"javascript:podglad()\"></textarea><br>

Tak jest obecnie, i entery "znikają"...

Chciałem zastosować nl2br, ale nie wiem, jak tekst wynikowy js (który aktualnie się wyświetla w div'ie) nadać zmiennej w php...


--------------Up---------------
Erix, sprawdze teraz to...
Spawnm
No to pisałem: //chyba że replace
smile.gif
Kredka29
Kod
to = text.replace(/\n\r?/g, '<br />');


Teraz w ogóle się nie wyświetla...
erix
Cytat
Cały plik jest w PHP...

Ale to nie jest akurat PHP, tylko JS.

Cytat
Teraz w ogóle się nie wyświetla...

Pokaż, jak wstawiłeś.
Kredka29
Kolega Spawnm powiedział: "ew. w php nl2br" title="Zobacz w manualu PHP" target="_manual.", dlatego oznajmiłem że plik jest w php, więc i to może się nadać...
Cytat
Pokaż, jak wstawiłeś.


Próbowałem na takie sposoby:
Kod
function podglad()
{
var to = document.getElementById('mytxtarea').value;
to = to.replace(/\n\r?/g, '<br />');
document.getElementById('jeden1').innerHTML = to;
}

Kod
function podglad()
{
var to = document.getElementById('mytxtarea').value;
to = text.replace(/\n\r?/g, '<br />');
document.getElementById('jeden1').innerHTML = to;
}

Kod
function podglad()
{
var to = document.getElementById('mytxtarea').value;
too = to.replace(/\n\r?/g, '<br />');
document.getElementById('jeden1').innerHTML = too;
}
erix
Przecież trzeci kod działa ok...
Kredka29
No właśnie nie działa...
A jak mogę ewentualnie użyć tego nl2br" title="Zobacz w manualu PHP" target="_manual?
erix
Cytat
No właśnie nie działa...

Działa, bo sprawdzałem.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.