2017-09-06 1 views
0

Meine Seite hat 4 Registerkarten, innerhalb jeder Registerkarte gibt es eine Tabelle, und ich möchte in der Lage sein, die Zeilen einer Tabelle innerhalb bestimmter Registerkarte zu malen. Momentan male mein Code die Zeile aller Tabellen, nicht nur eine Tabelle. Ich habe versucht, Variationen der gleichen Codezeile, kann aber nicht den richtigen Code für den Zugriff auf nur eine Tabelle finden.CakePHP - Zugriffstabelle von innerhalb einer Registerkarte

In jeder Registerkarte gibt es eine Tabelle mit einer anderen ID, und ich weiß nicht, wie Sie auf jede Tabelle separat zugreifen, je nachdem, was ich brauche. Der letzte Teil meines Codes hat eine Bedingung, und in jeder Bedingung ist die Zeile anders. Sie sollten gleich sein, aber ich habe sie geändert, um auf einen Tisch zuzugreifen, aber ich finde den Weg nicht.

Vielleicht kennen Sie den richtigen Code dieser Zeile.

Danke.

Mein Code page.ctp:

<div id="tab-1"> 
    <table id="tablesc"> 
    ...//samefor all 
    </div> 

<div id="tab-2"> 
    <table id="tablesd"> 
    ...//samefor all 
    </div> 
<div id="tab-3"> 
<table id="tablespr"> 
...//samefor all 
</div> 
<div id="tabs-4"> 
<table id="tablespr"> 
    <tr> 
     <th width="5%">Codigo</th> 
     <th colspan="2">Criterio</th> 
    </tr> 
    <?php echo $this->Form->create($file); ?> 
    <?php $j=1; ?> 
    <?php $indice = 1; ?> 
    <?php foreach($xmlrecibidoSPR->entryresult as $entry):?> 
    <tr> 
     <td width="5%"><?php echo $entry->codigo; ?></td> 
     <?php $etapa = '14';?> 
     <td colspan="2"><?php echo $this->Form->input('criteriosSPR' . $j, array('options' => $opcionescriterios, 'label' => "", 'onchange' => 'cambio2(' . $indice . ', ' . $entry->resultnumber . ', ' . $etapa . ', ' . '\'' . $carpeta . '\'' . ', \'tablaspr\')')); ?></td>    
     </tr>  
    <?php ++$j; ?> 
     <?php ++$indice; ?> 
    <?php endforeach;?> 
</table> 
</div> 

Mein Code custom.js:

function change(indicetabla, indicexml, etapa, carpeta, tabla){ 
    var xhttp = new XMLHttpRequest(); 
    xhttp.open("GET", "../webroot/files/pjs15/results.xml", false); 
    xhttp.send(); 
    var xmlDoc = xhttp.responseXML;/* xml */ 
    var documento = xmlDoc.childNodes[0]; 
    var sufijo = ""; 
    if(etapa == 11 || etapa == 21){ 
     sufijo = "scp"; 
     } else if(etapa == 12 || etapa == 22){ 
     sufijo = "sd"; 
     } else if(etapa == 13 || etapa == 23){ 
     sufijo = "ieee"; 
     } else if(etapa == 14 || etapa == 24) { 
     sufijo = "spr"; 
     } else{ 
     sufijo = ""; 
     } 
    var table = document.getElementById(tabla); 
     var t = document.getElementById("criterios" + sufijo +indicetabla); 
    var selectedText = t.options[t.selectedIndex].text; 

    $.ajax({ 
     url:'../webroot/js/ajax.php', 
     method:'get', 
     data:{name:indicexml, criterio:selectedText, etapa:etapa, carpeta:carpeta}, 
     success:function(data) 
     { 
      particula = selectedText.substr(0,2); 
      if(particula=='CI')/* indicexml */ 
      { 
       $("table").find('tr:eq(' + indicetabla + ')').css('background-color', '#98ff98');//mint 
      } 
      else if(particula=='CE') 
      { 
       document.getElementById("table").find('tr:eq(' + indicetabla + ')').css('background-color', '#f6b8b8');//powder pink 
      } 
      else 
      { 
       $("table" + sufijo).find('tr:eq(' + indicetabla + ')').css('background-color', '#fcf8e3'); 
      } 
     }, 
     error:function(data) 
     { 
      alert("error"); 
     } 
    }); 

Antwort

1

jQuery id selectors mit einem # Zeichen beginnen.

Sie verketten "Tabelle" mit jedem eindeutigen Suffix hier, müssen aber den Selektor mit # voranstellen.

$("table" + sufijo).find('tr:eq(' + indicetabla + ')').css('background-color', '#fcf8e3'); 

Sollte

$("#table" + sufijo).find('tr:eq(' + indicetabla + ')').css('background-color', '#fcf8e3'); 
Verwandte Themen