1

そのため、データベース内の列に基づいて ID を自動生成するスクリプトがあります。そのような:

echo "<tr class='task' id='task-" . $row['task_id'] . "'>";

そして、別の列からの情報に基づいて各 tr クラス名を変更したいスクリプトがあります。同じコード'task-". $row[task_id] ."'document.getElementByIdフィールドに配置しようとしましたが、ブラウザーで解決されませんでした。'task-" . $row[task_id] . "'$row[task_id] を数値に変更する代わりにそのままの意味を解決します。のIDと一致するように、その変更を数値に加える必要がありtrます。

var resolved = <?php echo $_SESSION['resolved']; ?>;
    if (resolved == 1) 
    {
        document.getElementById('task-" . $row[task_id] . "').className ="task resolved";
    }
    else
    {
        document.getElementById('task-" . $row[task_id] . "').className =" task";
    }
4

2 に答える 2

2

次のように変数をエコーアウトする必要があります。

var resolved = <?php echo $_SESSION['resolved']; ?>;

if (resolved == 1) 
{
    document.getElementById('task-<?php echo $row['task_id'] ?>').className ="task resolved";
}
else
{
    document.getElementById('task-<?php echo $row['task_id'] ?>').className =" task";
}

ただし、javascript で行うのではなく、次のように PHP で行う方がよいでしょう。

echo "<tr class='task " . ($_SESSION['resolved'] == 1 ? 'resolved' : '') ."' id='task-" . $row['task_id'] . "'>";

resolvedHTMLを生成するときにクラスを追加します。$_SESSION['resolved'] == 1ただし、すべてのタスクが解決済みとしてマークされるため、タスクが解決されたかどうかをテストするためのより良い方法が必要になるでしょう。したがって、行に `$row['resolved'] のような列があると仮定すると、次のことができます。

echo "<tr class='task " . ($row['resolved'] == 1 ? 'resolved' : '') . "' id='task-$row[task_id]'>";
于 2013-06-08T04:37:04.140 に答える
0

あなたのステータスがそのテーブルの列にある場合、JavaScriptは必要ありません....

if($row['resolved']=="1){
    $class="task resolved";
} else {$class = "task";}

echo "<tr class='".$class."' id='task-" . $row['task_id'] . "'>";

または、はるかに単純なバージョン...

echo "<tr class='task ".($row['resolved'] == 1 ? 'resolved' : '')."' id='task-".$row['task_id']."'>";
于 2013-06-08T04:41:37.783 に答える