andrzejf
21.10.2011, 08:39:05
Witam
Proszę o sugestie i podpowiedzi jak uzupełnić pole <textarea> tekstem który przychodzi z powiedzmy innej tabeli.
Jestem w stanie zrobić to na zwykłym polu, w pewnym uproszczeniu wygląda to tak:
potem wypełniam to pole:
$['description'].innerHTML='<?php $text_przychodzacy_z_innej_tabeli; ?> ';
teraz zastanawiam się jak można by to zmienić aby wypełnianym polem było <textarea> i aby po uzupełnieniu pola można go było modyfikować.
Z góry dziekuję za pomoc
andrzej
nospor
21.10.2011, 08:44:09
textarea nie ma "innerHTML" a ma poprostu "value"
andrzejf
21.10.2011, 09:13:57
oczywiście tylko jak spróbowałem w ten sposób
$['description'].value='test test';
to też nie działa,
czy coś źle robię ?
nospor
21.10.2011, 09:16:44
Takie nie wiadomo cos:
$['description'].innerHTML
ci działa, a to :
$['description'].value
już nie? Coś kręcisz...
Jesli textarea ma nadane id, to:
document.getElementById('idtextarea').value='blabla';
andrzejf
21.10.2011, 09:31:33
pełny kod:
<script>document.observe('dom:loaded', function() {
function templnameChanged()
{
new Ajax.Request('medical_fill.php?&id='+encodeURIComponent($F('templname')),
{encoding: 'iso-8859-2', method: 'get', onCreate: function(){ $('templname').disable(); $('templnameLoading').innerHTML='
<img src=wiatraczek.gif align=top>'; }, onComplete: function(){$('templname').enable(); $('templnameLoading').innerHTML='';}}
);
};
templnameChanged();
$('templname').onchange=templnameChanged;
i plik medical_fill.php
$d=dirname(__FILE__);
include("$d/funlib.php");
header("Content-type: text/javascript; charset=iso-8859-2");
$id=$_GET['id'];
if(!$id)
{
die('// blad!');
}
$res=sql("select * from `examtempl` where `id_examtempl`='$id' limit 1"); // sql() funkcja gdzie indziej zdefiniowana
if($row=mysql_fetch_assoc($res))
{
?>
<?php
}
nospor
21.10.2011, 09:33:31
No a masz to textarea o ID descr?
ps: do tego:
$('descr').value='<?php echo addslashes($row['descr']); ?> ';
dopisz:
$('descr').value='<?php echo addslashes($row['descr']); ?> ';
alert(2);
Wyswietla się alert?
andrzejf
21.10.2011, 09:37:56
tak jest przydzielony
id dla tego pola i też
nameodzielny plik z template'em strony
<td class="bodyTbl" valign="top"><%%html_field(descr)%%></td>
potem w php zastepuję go
$html_code=str_replace('<%%html_field(descr)%%>', '<textarea name="descr" id="descr" cols="50" rows="15" class="textbox"> </textarea>', $html_code);
nospor
21.10.2011, 09:39:39
Spójrz jeszcze na ps z mojego poprzedniego posta i odpowiedz na drugie pytanie.
andrzejf
21.10.2011, 09:40:58
tak wyskakuje ALERT
nospor
21.10.2011, 09:45:31
Podałem ci kod:
document.getElementById('idtextarea').value='blabla';
Więc użyj go a nie używasz
$('descr')
Zakładam że używasz prototype. Masz więc dwa wyjscia:
1) Użyj to co ja ci podałem
2) Albo zajrzyj do dokumentacji prototype (czy czego tam używasz) i zobacz jak tam się należy dobrać do value elementu.
andrzejf
21.10.2011, 09:50:30
oczywiście użyłem Twojego kodu
Bardzo dziękuję za poświęcony czas
Sprawdzę jeszcze raz wszystko po kolei
Pozdrawiam
nospor
21.10.2011, 09:53:27
Skoro użyłeś mojego kodu, to czemu pokazujesz, że masz tak:
$('descr').value='<?php echo addslashes($row['descr']); ?> ';
?

Sprawdź czy napewno textarea ma id jakie ma miec. W źródle strony to sprawdź a nie w szablonie.
andrzejf
21.10.2011, 10:46:35
nie mam pojęcia co jest źle
dodałem coś takiego i wyskakuje mi alert 'test-123' natomiast na stronie www <textarea> jest ciągle puste!
<?php
document.getElementById('descr').value='test-123';
alert(document.getElementById('descr').value);
?>
nospor
21.10.2011, 10:54:15
Wystaw ten kod na zewnątrz, by można było na niego luknąć online.
andrzejf
21.10.2011, 11:09:27
dziwne i tego nie rozumiem
Jak usunąłem ze strony skrypt ( sciągnięty z
http://nicedit.com/ )
to zaczeło działać
czyli
jak usunałem to co poniżej, to jest ok ale nie mam możliwości korzystania z html w polu 'descr'
<script language="javaScript"> bkLib.onDomLoaded(function(){
if(document.getElementById('descr')!=undefined)
new nicEditor().panelInstance('descr');
});
luckyps
21.10.2011, 11:12:22
pokaz w koncu wynikowy kod strony... tak to mozna tylko zgadywac...
nospor
21.10.2011, 11:13:57
Jejkuś.... to mów od razu że używasz edytora na tym polu.....
Przecież ten edytor nie wyświetla tleści w textarea tylko go podmienia. Poczytaj w dokumentacji tego edytora jak dynamicznie ustawiać w nim treść.
andrzejf
21.10.2011, 11:26:07
Cytat(luckyps @ 21.10.2011, 11:12:22 )

pokaz w koncu wynikowy kod strony... tak to mozna tylko zgadywac...
jak ?
mam tu wkleić kilkanaści plików, komu się zechce to analizować, pisałem to w 2010 i teraz wróciłem aby własnie zmienić to by mozna było 'włozony' tekst modyfikować.
Na razie to sam się zastanawiam co ja rok temu miałem na myśli robiąc pisząc pewne rzeczy, zawsze mi szkoda czasu na komentarze ( teraz by się przydały )
nospor
21.10.2011, 11:27:58
Powtarzam:
Cytat
Jejkuś.... to mów od razu że używasz edytora na tym polu.....
Przecież ten edytor nie wyświetla tleści w textarea tylko go podmienia. Poczytaj w dokumentacji tego edytora jak dynamicznie ustawiać w nim treść.
luckyps
21.10.2011, 11:29:20
1. Czy jezeli umiescisz jakis testowy tekst na sztywno w textarea to bedzie on widoczny poprawnie razem z nicEditorem ?
2. Moze kolejnosc wykonywania skryptow jest bledna (najpierw wpisz wartosc w textarea a potem uruchom na nim nicEditor) ?
3. nospor dobrze Ci radzi
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.