将动态创建的ID放入javascript中

时间:2013-06-08 04:29:26

标签: php javascript

所以我有一个脚本可以根据数据库中的列自动生成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的ID相匹配。

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";
    }

2 个答案:

答案 0 :(得分: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'] . "'>";

在生成HTML时添加resolved类。但是,您可能需要一种更好的方法来测试任务是否已解决,因为$_SESSION['resolved'] == 1它将所有任务标记为已解决。因此,假设您的行有一个像`$ row ['resolved']这样的列,您可以这样做:

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

答案 1 :(得分: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']."'>";