ugrás a tartalomhoz

JS -ből szöveges adatok kiírása HTML-be

Ragadozo · 2009. Jún. 7. (V), 22.22
Full elakadtam, és már nem is tudom, hogy hol folytassam, annyi mindent kipróbáltam már.
A lényeg röviden, a JS adatfájlból beolvasni a változókat, és azokat a web-oldal adott, különböző pontján fix helyen kiiratni.
A másik lényeges dolog, hogy egy-egy ilyen kiírás minél rövidebb legyen, különben nincs értelme.
Hogy miért kellene?
Többek között azért, mert egy-egy ilyen szöveges változó cca. 50-100 karakterből áll, és van (lesz) belőle min. 200 db. Szeretném, ha a forrás mérete minél kisebb lenne, és átláthatóbb.

Az utolsó próbálkozásom:

JS

var faj1=new Array();

faj1[0]['key']="nev1";
faj1[0]['value']="Trachemys";
faj1[1]['key']="nev2";
faj1[1]['value']="ékszerteknős";

function betoltes() {
for (x in faj1) {
document.getElementById(faj1[x]['key']).innerHTML=faj1[x]['value'];
}
}
window.onload=betoltes;
HTML

<img src="ikon.jpg"><div id='nev1'></div><img src="kép.jpg"><br />
Azon kívül, hogy nem jelent meg semmi, még dobott is egy sort!
A változók csak kiírásra kellenek, ahogy betöltődik az oldal, és ott is maradnak.
Minden egyszerű megoldás érdekel, én már kifogytam az ötletekből :(
 
1

for ciklussal próbáld meg

mgergo90 · 2009. Jún. 7. (V), 23.41
for ciklussal próbáld meg
2

Így is lehet

cSuwwi · 2009. Jún. 7. (V), 23.53
Js-ben a multidimenzionális tömbök egy kicsit mások mint phpban.
Én így oldanám meg a tömb feltöltését. Sokkal átláthatóbb.
A betoltes-re tettem egy try-catch-et, mert ha olyan id-t akarsz elérni ami nincs, akkor error-t dob, és leáll a script.

var fajl = new Array();
	fajl[0] = new Array("nev1", "Trachmeys");
	fajl[1] = new Array("nev2", "ékszerteknős");

function betoltes() {
for (x in fajl) {
try {
	document.getElementById(fajl[x][0]).innerHTML=fajl[x][1];
} catch (err) {}
}
}
window.onload=betoltes;
3

Kiírás

Ragadozo · 2009. Jún. 8. (H), 09.11
Igen, ez jónak tűnik, csak a <div ... dob egy sort, és nem jelenik meg semmilyen szöveg.
5

onload?

zzrek · 2009. Jún. 8. (H), 20.03
body onload után próbáltad?
4

hash

SamY · 2009. Jún. 8. (H), 13.17
esetleg így?

var fajl = {
  'nev1': 'Trachmeys',
  'nev2': 'ékszerteknős'
}

function betoltes() {
  for (var i in fajl) {
    document.getelementById( i ).innerHTML = fajl[i];
  }
}

window.onload = betoltes;
esetleg a try/catch block -ot tényleg érdemes még beletenni.
6

Kipróbáltam mindegyiket, és

Ragadozo · 2009. Jún. 11. (Cs), 00.58
Na végre működik! :)

JS
var fajl = new Array(); 
fajl[0] = new Array("nev1", "Trachmeys");   
fajl[1] = new Array("nev2", "ékszerteknős");
function betoltes() {   
for (x in fajl) {try {  document.getElementById(fajl[x][0]).innerHTML=fajl[x][1];   
} catch (err) {}
}
}
HTML

<HEAD>
<script type='text/javascript' src='./js/ragadozo.js'></script>
</HEAD>

<BODY>
<script type="text/javascript" >
window.onload=betoltes;</script>
......
<img src="valami1.jpg" align="top" ><span class="text" id="nev1"></span> 
<img src="valami2.jpg" align="top" ><span class="text" id="nev2"></span>
7

Segítsetek léci

XY_ZERo · 2015. Nov. 11. (Sze), 12.09
Sziasztok!
Az utolsó bejegyzés nekem is bejött és nagyon köszönöm, de viszont, ha például egy ugyan azon az oldalon mondjuk 2X ugyan azt a szöveget akarom, hogy kiírja, akkor csak az egyiket fogja beírni és a másikat nem.
Segítségeteket köszönöm.


Pl.:
HTML-ben
Szia: <spawn id="nev">
Miújság: <spawn id="nev">



JS-ben:
var fajl = new Array();

fajl[1.0] = new Array("nev", "XY_ZERO");


function betoltes() {
for (x in fajl) {try { document.getElementById(fajl[x][0]).innerHTML=fajl[x][1];
} catch (err) {}
}
}
8

Egyedi

Poetro · 2015. Nov. 11. (Sze), 12.19
Egy dokumentumban az id attributum értékének egyedinek kell lennie, azaz nem szerepelhet két elem azonos id-vel.

Egyébként mi az a spawn elem?
9

asd

XY_ZERo · 2015. Nov. 11. (Sze), 15.09
az jó kérdés xD
véletlenül benne hagyhattam valamikor és úgy maradt, köszi az észrevételt :)

És tudsz valami más módszert a problémámra?
Ha lehetne, ne php-s mert ahhoz sajna nem értek és még csak most kezdtem ezt az egészet :(

CSS JS jöhet :)
php is jöhetne, csak nem tudom, hogy hogyan kell kapcsolni a html-hez
10

Különböző id-k

Poetro · 2015. Nov. 11. (Sze), 16.17
Minden elemnek különböző id-t kell megadni, és mindegyikhez fel kell venni egy új tömböt a tömbödbe.
11

asd

XY_ZERo · 2015. Nov. 11. (Sze), 16.40
rendben, nekem is így van megoldva, csak gondoltam megkérdezem, hogy máshogy lehet e, de hát ha nem, akkor maradok annál amit javasolsz :)
12

Rengeteg

Poetro · 2015. Nov. 11. (Sze), 17.36
Rengeteg megoldás létezik a problémádra, csak nem írtad le, hogy mi a problémád.
13

re

XY_ZERo · 2015. Nov. 11. (Sze), 18.02
A html-ben lehet-e olyat csinálni, hogy egy szöveget, ami sok oldalon szerepel, egy txt fájlból szedjem ki?
Vagy ezt csak php-ban lehetséges?
14

HTML

Poetro · 2015. Nov. 11. (Sze), 18.18
Mivel a HTML fájl egy statikus dokumentum, ilyet nem lehet. De amikor a HTML dokumentumodat generálod, akkor azt raksz bele, amit akarsz, azaz szedheted az adatokat akár szöveges fájlokból is hozzá. Az teljesen mellékes, hogy milyen nyelv, vagy alkalmazás segítségével generálod a fájlodat.
15

válasz

XY_ZERo · 2015. Nov. 14. (Szo), 10.30
mármint js-el vagy css-vel megoldani úgy mint php-nél az include.
hogy egy txt fileba beleírom az összes szöveget és abból kiírná a program a html-be.

Tulajdonképpen ez is jó lenne amit mutattatok, csak nekem többször kéne felhasználni ugyan azt a szöveget.

Megoldható lenne valahogy?
16

Nem értem mi ebben a

erik0415 · 2015. Nov. 14. (Szo), 12.33
Nem értem mi ebben a probléma.
Egyszerűen csak class-t kell használni az id helyett. Itt van egy példa rá:
Html:

<div class="teszt"></div>
<br />
<div class="teszt"></div>
<br />
<div class="teszt"></div>
<br />
<div class="teszt"></div>
Javascript:

var fajl = new Array();
fajl[0] = new Array("teszt", "Valami kis szöveg");
function betoltes() { 
for (x in fajl) { try { 
var classok = document.getElementsByClassName(fajl[x][0]); 
for(var i=0; i<=classok.length; i++){
	classok[i].innerHTML=fajl[x][1];
}
} catch (err) {} 
} 
}
window.onload = betoltes;
17

köszönöm

XY_ZERo · 2015. Nov. 15. (V), 09.48
Végreee... Kösziii a kódot <3 :$$ xD