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] 更改为数字。我需要对一个数字进行更改,使其与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'] . "'>";

resolved在生成 HTML 时添加类。但是,您可能需要一种更好的方法来测试任务是否已解决,因为$_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 回答