Autor Zpráva
Pája
Profil *
<?php
for ($i=0 ; $i<$denik_num ; $i++){
                
 $id = MySQL_Result($denik, $i,"id");
  $cis_radku = MySQL_Result($denik, $i,"cis_radku");
  
  
 ?> 
  <tr id="id1">
  
   <td><input type="text" id="id" value="<?php echo $id;?>" name="id[]" size="10" onMouseDown="return zvyrazni_radek()" onkeypress="return tabE(this,event)"></td>
    <td><input type="text" id="cis_radku" value="<?php echo $cis_radku;?>" name="cis_radku[]" size="10" onkeypress="return tabE(this,event)"></td>
    
        
 </tr>
  

<?php

 }
?>


 function zvyrazni_radek()
  {
  var $iddd=document.getElementById('id').value;
  //var $result = ''; $('tr input').each(function(){ result += $(this).attr('id')+'='+$(this).val()+'&' }) 
  alert (id);
  if(document.getElementById('id').value == $iddd)
    {
  
   document.getElementById('id1').style.backgroundColor='#003F87';
    } 
  } 



potřeboval bych, aby se mi po kliknutí myší na ID v jakémkoliv řádku změnilo pozadí daného řádku.... zatím se mi mění vždy první řádek.... díky moc za pomoc


Moderátor juriad: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
juriad
Profil
Pája:
Nepotřebuješ id. Nikde.

Změníš parametr onmousedown na:
return zvyrazni_radek(this)

A funkci upravíš na:
function zvyrazni_radek(td) {
  var tr = td.parentNode;
  tr.classList = (tr.classList == 'zvyrazneny' ? '' : 'zvyrazneny');
}

A pak vytvoříš třídu v CSS:
.zvyrazneny {
  background-color: #003F87;
}

Proměnné v JS obvykle nezačínají dolarem.
Pája
Profil *
juriad:

díky za zájem pomoct, ale byť jsem udělal vše, co jsi napsal, tak to nedělá už vůbec nic... :-(

předtím to aspoň zvýraznilo, byť vždy jen první řádek (bez ohledu na který se kliklo...)


 function zvyrazni_radek(td)
  {
  var tr = td.parentNode;
  tr.classList = (tr.classList == 'zvyrazneny' ? '' : 'zvyrazneny');
  } 


  ?> 
  <tr>
  
    <td><input type="text" id="id" value="<?php echo $id;?>" name="id[]" size="10" onMouseDown="return zvyrazni_radek(this)" onkeypress="return tabE(this,event)"></td>
    <td><input type="text" id="cis_radku" value="<?php echo $cis_radku;?>" name="cis_radku[]" size="10" onkeypress="return tabE(this,event)"></td>


CSS mám v tomto souboru načten takto:
<link href="css/default.css" rel="stylesheet" type="text/css">

a v CSS:

.zvyrazneny{
  background-color: #003F87;
}


co je chybně? :-) Díky.
Chamurappi
Profil
Reaguji na Páju:
Kolega juriad omylem napsal classList místo className.
Pokud se má měnit třída řádku, tak bude potřeba ještě jeden parentNode, protože onmousedown je na <input>u (tedy ne na <td>) a jeho rodičem není <tr>.
Pája
Profil *
Chamurappi:

díky :-)

změnil jsem to takto:

function zvyrazni_radek(td)
  {
  var tr = td.parentNode;
  tr.className = (tr.className == 'zvyrazneny' ? '' : 'zvyrazneny');
  } 

a na co kliknu, to se zvýrazní.... paráda :-)

ale potřebuji, aby se zvýraznil celý řádek.... momentálně se zvýrazní pouze jedna buňka, konkrétně ta id, kde je v tom <input>u onMouseDown.....

jak zvýraznit všechny sloupce v celém řádku?

děkuji
juriad_
Profil *
3. radek:
td.parentNode.parentNode
A prosim prejmenuj tpomennou td na input. Nevsiml jsem si ze onmousedown neni na bunce.
Pája
Profil *
juriad:

děkuji pánové :-)

takhle to chodí.... :-)


 function zvyrazni_radek(td)
  {
  var tr = td.parentNode.parentNode;
  tr.className = (tr.className == 'zvyrazneny' ? '' : 'zvyrazneny');
  } 

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: