Tábla bővités
Sziasztok!
Az lenne a kérdésem, hogy hogyan tudnék egy gombnyomással bővíteni egy táblázatot új sorokkal?
Mindehhez elég a JavaScript, vagy valami más is kell hozzá?Most kezdtem el tanulni a JavaScriptet, és csak akadozva megy.
Valaki tudna adni nekem linkeket tutorialokról? Első sorban magyar nyelvűt, de jó az angol is.
Segítségeteket előre is köszönöm
Bence
■ Az lenne a kérdésem, hogy hogyan tudnék egy gombnyomással bővíteni egy táblázatot új sorokkal?
Mindehhez elég a JavaScript, vagy valami más is kell hozzá?
<table>
<tr>
<td>egy</td>
<td>kettő</td>
<td>három</td>
</tr>
<tr>
<td colspan="3"><input type="button" name="plusz" id="plusz" value="+" onClick="" /></td>
</tr>
</table>
Valaki tudna adni nekem linkeket tutorialokról? Első sorban magyar nyelvűt, de jó az angol is.
Segítségeteket előre is köszönöm
Bence
Sor
Ez új oszloppal bővíti. Új
$('table').append($('table tr:last').clone())
). Ha valamivel szebb megoldást akarsz, akkor érdemes valamilyen kliensoldali templating eszközt használni (pl. jQuery.tmpl).XSLT
Célszerűbb XSLT-vel elkészíteni az egészet, így több legyet üthetsz egy csapásra:
Attól függ, mi a feladat. Ha
Ezt hogy oldanád meg JS nélkül, pláne XSLT-ből?
Az üres sorok mezőiben is van
Példa XML:
<!-- sor létező adatokkal -->
<sor_adatok>
<mezo1>ertek1</mezo1>
<mezo2>ertek2</mezo2>
<mezo3>ertek3</mezo3>
</sor_adatok>
<!-- új sor -->
<sor_adatok>
<mezo1></mezo1>
<mezo2></mezo2>
<mezo3></mezo3>
</sor_adatok>
</xml_reszlet>
Ha javascriptből XSLT-zel, az
Ha javascriptből XSLT-zel, az
Teljesen mindegy, hogy hol
Kivéve, hogy mégis, mert pl. teljesen máshogy fogod valószínűleg az adatokat tisztítani, meg majdnem biztos, hogy a kliens- és szerveroldali motor nem működik teljesen egyformán. Elvben van egy csomó sablonnyelv, amit kliens- és szerveroldalon is használhatsz (pl. Smarty vagy Moustache), a gyakorlatban hasonló okból nem bíznék bennük nagyon, pedig ott még a böngészőfüggőség nem is játszik be.
Pl: Opera's XSLT engine supports exslt:node-set, Mozilla/Firefox's XSLT engine doesn't in the current release, but does in the "Gran Paradiso" alpha tests for Firefox 3. Internet Explorer (6 and 7) don't support EXSLT, but do support the functionally identical msxsl:node-set function in the usual msxsl extension namespace. Igen, ez nem XSLT 1, és csak olyan ritkán használt dolgok vannak benne, mint pl. az URL encoding.
Amely esetben lesz egy szerveroldali sablonmotorod, egy kliensoldali sablonmotorod, és egy másik kliensoldali sablonmotorod, ami a szerveroldalon fut. Máris minden sokkal egyszerűbb.
Javascript nélkül, dinamikusan? Hogyan?
Kivéve, hogy mégis, mert pl.
Kimenő adatokat minek akarsz
Pl. XSS kivédésére...
Azért én erre pl. mobil böngészőknél nem fogadnék nagy összegben.
És akkor az eddigi három sablonrétegünk mellé van egy negyedik is, a PHP-ben végzett előfeldolgozás. Uhh.
De ha a kliensoldali kimenetet szerveroldalon generálod, azt el kell valahogy juttatni a kliensoldalra. Nem nehéz, de ez már a harmadik módja lesz a sablonkezelésnek -> egyre több apró inkompatibilitás (pl. abban, hogy pontosan mivé transzformálódik az invalid HTML).
Nem látom, hogy oldja meg, hogy egy gombra kattintva beszúródjon egy új sor a táblázatba.
Pl. XSS kivédésére...Ezt nem
Jogos
tutorial
Köszi
OFF: Itt nem tudom miért kell
ON: table.insertRow, plusz létezik számos egyéb metódus amit DOM-on keresztül el lehet érni táblázat elemekre (táblázatra, sorokra, cellákra).
Javascriptet nem jQuery-vel
Ezzel
Tapasztalatból mondom, hogy igen nagy szopásokkal jár, ha az ember nem az alapokkal kezdi a tanulást. :-(
Egyetértek
Javascriptnél az igen nagy
Valahogy így
var tr-ek = tabla.getElementsByTagName('tr');
tabla.appendChild(tr-ek[tr-ek.length - 1].cloneNode(true));
Ok, ebben az esetben még
XSLT
XSLT-vel ez úgy megy, hogy a programozó elkészíti az XML-t, amiben a kimenő adatok vannak, és onnantól kezdve el is felejtheti a projektet. A sitebuilder legyártja az XSLT-t hozzá, és ha van javascript, akkor a kliensen, ha nincs, akkor pedig a szerveren készül el a HTML, aztán a kliens pedig eldönti, hogyan jeleníti meg.
Eltekintve annak a
illetve mennyivel lassabb
Erre jutottam
Pár észrevétel
Pl:
<input type="text" />
, helyett a<input type="text">
lesz valid.Továbbá, nincs dokumentum típus meghatározva ami lehet kellemetlen.
Ezen felül a script elemekben a "language" deprecated vagyis elavult.
XHTML?
Nem, mert nem lesz valid. A
Lehet, hogy félreértjük
validáld ezt a lapot: Markup
Line 2, Column 1: Missing xmlns attribute for element html. The value should be: http://www.w3.org/1999/xhtml
<html>
✉
Many Document Types based on XML need a mandatory xmlns attribute on the root element. For example, the root element for XHTML might look like:
<html xmlns="http://www.w3.org/1999/xhtml">
Nem erre gondoltam, hanem az
Más kérdés, hogy pl. a validator és a legtöbb böngésző felismeri doctype hiánya ellenére.
tegyük fel nincs doctype: 1.
1. ha van xmlns deklaráció a validátor XHTML-nek olvassa, és elvárja, hogy a sort tagokat "/>"-el zárd nem pedig ">"-el.
2. ha nincs xmlns deklaráció a validátor HTML-nek olvassa, és elvárja hogy hanyagold a "/>" lezárást.
Itt az okozhat problémát, hogy pl. a böngészők nem biztos, hogy ugyan úgy találgatnak a dokumentum típust illetően mint a validátor.
továbbá valahol olvastam, hogy az IE kiakad egy ilyentől, de nem jártam utána teljesen a verziókat illetően:
köszi
A language meg nem tudtam, hogy elavult.
köszi, hogy szóltál
empty element
<input />
nem valid HTML-ben dologgal kapcsolatban, egy kis pontosítás.De a megoldandó probléma szempontjából majdnem teljesen mindegy a dokumentum típus.
Az <input /> egyébként
Az xhtml validságán fennakadni default névterek és egyéb funkciótlan dolgok kapcsán viszont teljesen értelmetlen, mert valid xhtml nem létezik. Az xhtml szabvány megköveteli, hogy a mimetype application/xml legyen, amivel viszont mindannyiunk barátja, az IE nem tud mit kezdeni, ezért text/html+xhtml és hasonlókat szoktak használni, amik viszont nem validak, ezért a böngészők eleve html4 quirks módban olvassák (és a namespace deklarációt eldobják, mint html4-ben értelmezhetetlent).