2017-11-07 6 views
1

私はhtmlテーブルを持っていますが、セルの色はmysqlからphpで色分けされていて、ページを更新する必要はありません。セルは灰色で始まりますが、値がHTMLに引っ張られなくなったときに、セルはどのように私がこれを行うことができるかに関する助けを灰色に戻しませんか?私はhtmlセルの色を自動的にデフォルトに戻す

現在のコードが続いているとして、CSSが含まれている必要があります申し訳ありません

CSS:

table, td, th { 
border: 1px solid black; 
cellpadding: 2; 
cellspacing: 2; 
width: "100%"; 
height: "100%"; 
text-align: center; 
vertical-align: middle; 
font-size: 48px; 
background-color: #8F8F8F; 
} 

HTML:

$(document).ready(function() { 
    for (var i = 0; i < 10; i++) { 
     var row = $('<tr>').appendTo("#zoning tbody"); 
     for (var j = 1; j < 11; j++) { 
      $(`<td class='${i * 10 + j}'>${i * 10 + j}</td>`).appendTo(row); 
     } 
    } 

    $.get('php/beacon.php', function(response) { 
     console.log(response); 
     var row; 
     response.forEach(function(item, index) { 
      console.log(item); 
      $(`td.${item.beacon}`).css('background-color', item.location); 
     }); 
    }); 

    function upateTable() { 
     $.get('php/beacon.php', function(response) { 
      response.forEach(function(item, index) { 
       console.log(item); 
       $(`td.${item.beacon}`).css('background-color', 
item.location); 
      }); 
     }); 
    } 
    var updateTableInterval = setInterval(upateTable, 15000); 
}); 
+0

cssクラスは非常に簡単です.... '$(" td ")。remov eClass( "foo bar world") 'を呼び出し、各ループにクラスを追加するだけです。すべてのセルをループして色を灰色に変更するだけです。 – epascarello

+0

@epascarello私は追加して、クラスを削除しようとしましたが、私は次のコードを使用してこのdidntの仕事は正しいですか? inital ajax $( 'td。$ {item.beacon}').css( 'background-color'、 item.location);. addclass(classname); $( 'td。$ {item.beacon}').css( 'background-color'、 item.location);. removeClass(classname); –

+0

いいえ、クラスはありませんので、背景色を使用する必要はありません。色を設定する代わりに、要素のクラスを設定します – epascarello

答えて

0

はたぶんのデフォルトのクラスを持っています灰色の背景を作成し、すべてのセルをこのデフォルトのcolに戻すリセット関数を作成しますまたはあなたがPHPへのあなたの質問に答える前に?

+0

どうすればいいですか? –

+0

すべての表のセルをループし、データをリロードする前にバックグラウンドの色を削除する関数を使用します。 –

+0

私はそれを行う方法がわからないのですが、コードを書くことについてはあまりよくありません –

0

コードのどこにも色をグレーに設定していません。最善の策は、updateTable()関数にコードを含めることです。

jqueryフィルタを使用して、非灰色のセルをすべて取り除いてから、灰色のセルを灰色に変えてから、あらかじめajaxに基づいて再着色しておくことができます。私が推薦する

$('td').filter(function() { 
    return $(this).css('background-color') != '#8F8F8F'; 
}).css('background-color','#8F8F8F'); 

代わりに使用してクラス:あなたも、後であなたを、その後のフラグに使用されるクラス色のセル

$(`td.${item.beacon}`).css('background-color', item.location).toggleClass('coloured'); 

を設定するには、背景色を設定し、あなたのラインで

すべてのフラグ付きセルの色を消すことができます

$('td.coloured').css('background-color','#8F8F8F').toggleClass('coloured'); 
+0

申し訳ありませんが、私は上記のCSSを廃止された上記のCSSが含まれていたhadnt? –

+0

私の上記の編集を参照してください。最初のセクションでは、使用している特定の色にグレーを変更しました。私はクラスを使って別のアプローチを提案しました。 –

+0

素晴らしい仕事をしましたが、今問題があるのは、item.beaconを式に戻しても、セルがグレーのまま残っている場合は、 –

関連する問題