Autor Zpráva
omc003
Profil
Dobrý večer,
momentálně pracuji na diskuzi a zasekl jsem se na citaci příspěvku a javascript je pro mne zatím tak trochu španělská vesnice. Sehnal jsem si a lehce poupravil tento script:

(vyňato z php - proto zpětná lomítka)
<script language=\"javascript\" type=\"text/javascript\">
function copyText() {
var edit = document.getElementById(\"main".$row[0]."\").innerHTML;
document.getElementById(\"edit\").value = \"[q]\"+edit+\"[/q]\";
}
</script>

odkaz:
<a  href=\"#\" onClick=\"copyText()\">Citovat</a>

a textarea, do které se má vkládat, a div, ze kterého se má daný text kopírovat:
<textarea name=\"text\" id=\"edit\"> 
<div id=\"main".$row[0]."\">".$vysledek2."</div>

struktura stránky vypadá asi takto:

JS
cyklus - výpis jednotlivých příspěvků z DB
<a>Citovat</a>
<div>
konec cyklu
<textarea>

Bohužel výsledek je takový, že JS mi vypíše vždy jen poslední položku na stránce, ať kliknu na jakýkoliv <a>Citovat</a>. Což je ostatně logické, jelikož cyklus proběhne vždy několikrát, až skončí u oné poslední položky. Líbí se mi řešení zde na JPW - označit text, kliknout na odkaz a ten už jen daný text hodí do textarea. Pravděpodobně banalita, ale jak říkám, zatím se přelouskávám přes php a k JS jsem se doposud nedostal. Na google už nemám fantazii na klíčová slova, pod kterými bych měl hledat, proto se obracím zde. Mohli byste mi poradit, kde bych našel podobný script, popř. nadhodit nějaké řešení?
Za reakce budu moc vděčný.
Honza
preca1
Profil
Zdravim,
neni problém v tom document.getElementById(\"main".$row[0]."\")? Chybí ti tam jedno zpětný lomítko a v JS se řetězce spojujou plusem. Takže podle mě by to mělo vypadat document.getElementById(\"main\" + $row[0]). Podobný problém vidim u tý textarey. Možná by bylo lepší nevypisovat html pomocí PHP.
peta
Profil
omc003:
vyňato z php - pokud chces poradit s js, pak sem priloz html + js kod, napriklad kazdy prohlizec ma menu zobrazit zdrojovy kod stranky.
<script ... - pokud ten kod das duplicitne do stranky (jakoze jsi sem nedal kod stranky, kterou dostane prohlizec, takze tezko rici, co tam skutecne mas), tak js prepise vsechny predchozi funkce tou posledni, takze bude vzdy odkazovat na posledni radek. Takze bych ten js kod napsal na stranku jednou, do externiho souboru a do odkazu pak copyText($row[0]) i s cislem radku.
omc003
Profil
Tak jsem se do toho JS nakonec zamotal úplně a raději ty citace příspěvků vyřešil přes PHP :-) Každopádně za reakce díky.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0