Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript][AJAX] Dynamiczne pole textarea
Kredka29
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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

Ten post edytował Kredka29 6.07.2009, 17:33:54
Go to the top of the page
+Quote Post
Spawnm
post
Post #2





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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()
Go to the top of the page
+Quote Post
vokiel
post
Post #3





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
Kredka29
post
Post #4





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
erix
post
Post #5





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Pokaż, jak próbujesz.
Go to the top of the page
+Quote Post
Kredka29
post
Post #6





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
erix
post
Post #7





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie document.write, tylko obiekt.innerHTML...
Go to the top of the page
+Quote Post
Kredka29
post
Post #8





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

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

Co mogę poradzić?
Go to the top of the page
+Quote Post
Spawnm
post
Post #9





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




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.
Go to the top of the page
+Quote Post
erix
post
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




~Spawnm, ma:
Kod
text = text.replace(/\n\r?/g, '<br />');
Go to the top of the page
+Quote Post
Kredka29
post
Post #11





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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...

Ten post edytował Kredka29 8.07.2009, 18:39:45
Go to the top of the page
+Quote Post
Spawnm
post
Post #12





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




No to pisałem: //chyba że replace
(IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
Kredka29
post
Post #13





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


Kod
to = text.replace(/\n\r?/g, '<br />');


Teraz w ogóle się nie wyświetla...
Go to the top of the page
+Quote Post
erix
post
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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ś.
Go to the top of the page
+Quote Post
Kredka29
post
Post #15





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


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;
}


Ten post edytował Kredka29 8.07.2009, 20:23:23
Go to the top of the page
+Quote Post
erix
post
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Przecież trzeci kod działa ok...
Go to the top of the page
+Quote Post
Kredka29
post
Post #17





Grupa: Zarejestrowani
Postów: 78
Pomógł: 1
Dołączył: 6.12.2008
Skąd: Polska

Ostrzeżenie: (0%)
-----


No właśnie nie działa...
A jak mogę ewentualnie użyć tego nl2br" title="Zobacz w manualu PHP" target="_manual?
Go to the top of the page
+Quote Post
erix
post
Post #18





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
No właśnie nie działa...

Działa, bo sprawdzałem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 28.08.2025 - 20:13