Autor Zpráva
derhaa
Profil
jak zmenit pozici trka prave o jednu radku smerem nahoru v tabulkce, napr. radka 3 na pozici radky2 a radku 2 posunout na pozici radky 3, tj. vymenit pozice...?

setkal se s tim nekdo...?



<table>
<tbody id="tabBody_tab">
<tr><td>1</td></tr>
<tr><td>2</td></tr>
<tr><td>3</td></tr>
</tbody>
</table>


diky
habendorf
Profil
Kdy? Při jaké události?

Nejjednodušeji přes innerHTML.
derhaa
Profil
uz to mam:

necht existuje tabulka....

<button onclick="presunRadkuNahoru('tabBody_tab');">^</button>
<table>
<thead>
</thead>
<tbody id="tabBody_tab">
<tr>
<td><input type="radio" name="switcher"/></td><td>1</td><td>2</td><td>2</td>
</tr>
<tr>
<td><input type="radio" name="switcher"/></td><td>4</td><td>5</td><td>6</td>
</tr>
<tr>
<td><input type="radio" name="switcher"/></td><td>7</td><td>8</td><td>9</td>
</tr>
</tbody>
<tfoot>
</tfoot>
</table>


a obsluha jest:


function zjistiPoziciAktivnihoRadku(tbodyId){
var tbody = document.getElementById(tbodyId);
var tbody_trs = tbody.getElementsByTagName("TR");
var aktivni_radka = false;

for(var i = 0; i < tbody_trs.length; i++){
var radio = tbody_trs[i].firstChild.firstChild;
if(radio.checked){
aktivni_radka = true;
var pozice_radky = i;
}
}

if(aktivni_radka){
return pozice_radky;
} else {
return false;
}

}

function presunRadkuNahoru(tbodyId){
var tbody = document.getElementById(tbodyId);

var pozice_radky = zjistiPoziciAktivnihoRadku(tbodyId);

var pole_trs = new Array();

for(var i = 0; i < tbody.rows.length; i++){
pole_trs.push(tbody.rows[i]);
}

if(pozice_radky == 0){
alert("radku jiz nelze posunout....");
return;
} else if(!pozice_radky){
alert("nevybrali jste radku...");
return;
}

var tds0 = pole_trs[pozice_radky-1].cells.length;
var tds1 = pole_trs[pozice_radky].cells.length;
for(var k = 0; k < tds0 && k < tds1; k++){
vymenObsahBunek(pole_trs[pozice_radky-1].cells[k], pole_trs[pozice_radky].cells[k]);
}
}

function vymenObsahBunek (td0, td1){
var x = td0.innerHTML;
td0.innerHTML = td1.innerHTML;
td1.innerHTML=x;
}


predem dekuji autorovy knihy HTML,DHTML Hotova reseni.... kde jsem nasel inspiraci.... diky
derhaa
Profil
ale vite co je zajimave, ze pridavani tr do table pres innerHTML, nejde..., napr.

function pridejRadkuDoJizExistujiciTabulky(){
var tbody = document.getElementById(tbodyId);
tbody.innerHTML = "<tr><td>cosi....</td></tr>";
}

skoda, oblibil sem si ajax..... zatim ho testuji... a na tohle sem narazill.... skoda, bylo velmi uzitecne...
Oswald
Profil
Ta obsluha mi přijde zbytečně komplikovaná a nebude to ani nejrychlejší. Zkus kdyžtak tohle:

function presunRadkuNahoru(tbodyId) {


var i, curTr, prevTr,
checked = null,
inputs = document.getElementById(tbodyId).getElementsByTagName('input');

for (i = 0; i < inputs.length; i++) {
if (inputs[i].type == 'radio' && inputs[i].checked && inputs[i].name == 'switcher') {
checked = inputs[i];
break;
}
}
if (checked != null) {
curTr = checked.parentNode.parentNode
for (prevTr = curTr.previousSibling; prevTr != null && prevTr.nodeName != 'TR'; prevTr = prevTr.previousSibling);
if (prevTr) {
curTr.parentNode.insertBefore(curTr, prevTr)
} else {
alert("radku jiz nelze posunout....");
}
} else {
alert("nevybrali jste radku...");
}
}
peta
Profil
derhaa
"ale vite co je zajimave, ze pridavani tr do table pres innerHTML, nejde..."
To by ses docetl v google.
Se to musi udelat tim JS DOMem

http://www.volny.cz/peter.mlich/www.htm#mssub12
# * www.activewidgets.com aktivni tabulka
# www.java2s.com JS table
http://www.java2s.com/Code/JavaScript/GUI-Components/TableinJavaScript .htm
derhaa
Profil
to Osvald.... zajimave a prakticke.... no vida, mas se co ucit, velice pekne....

to peta.... velmi zajimave...., to je ctiva, ale pokusim se to vstrebat


diky
Toto téma je uzamčeno. Odpověď nelze zaslat.