如何在javascript中使用PHP循环变量?

时间:2018-02-18 20:12:52

标签: javascript php html sql database

我运行了一条SQL语句来获取我需要在HTML表格中显示的所有记录。

然后我运行一个while循环来显示数据库中的记录。 (代码如下所示。)

 <table class="projects-table">
                <tr>
                    <th>Complete?</th>
                    <th>Paid?</th>
                    <th>Project Name</th>
                    <th>£ / hr</th>
                    <th>End Date</th>
                    <th>Hours Logged</th>
                    <th><i class="fa fa-trash"></i></th>
                </tr>
                <?php 
                        $select_id_jobs = mysqli_query($mysqli, "SELECT id FROM users WHERE username='$login_user'");
                    while($row = mysqli_fetch_array($select_id_jobs)) {
                        $id_jobs = $row['id'];
                    }
                    $select_jobs_with_usrid = mysqli_query($mysqli, "SELECT * FROM jobs WHERE username_id = '$id_jobs';");
                    while($row = mysqli_fetch_array($select_jobs_with_usrid)) {
                ?>

                <tr id="<?php echo $rowId; ?>">
                    <td>
                        <!-- Complete Checkbox -->
                        <input type="checkbox" id="<?php echo $completeCheck;?>" onclick="compTask();">
                    </td>
                    <td>
                        <!-- Paid checkbox -->
                        <input type="checkbox" onclick="paidTask()">
                    </td>
                    <td>
                        <?php echo $row['project_title']; ?>
                    </td>
                    <td>
                        <?php echo $row['cost_hour']; ?>
                    </td>
                    <td>
                        <?php echo $row['completion_date']; ?>
                    </td>
                    <td>
                        <?php echo $row['time_spent']; ?>
                    </td>
                    <td>
                        <div class="delete-btn"><a onclick="deleteTask()">DELETE</a></div>
                    </td>
                </tr>
                <?php } ?>
            </table>

正如您可以从完成任务的复选框中看到的那样。我想要做的是使用javascript,以便在选中复选框时,其他记录中的文本变为绿色。 我已经包含了我想在下面使用的javascript。我不知道为什么,但我无法访问输入ID以更改CSS。

<script>
    function compTask() {
        if (document.getElementById("<?php echo 'complete-' . $row['id'] ?>").checked == true) {
            document.getElementById("<?php echo 'tr' . $row['id']; ?>").style.color = "green";
            alert("hello");
        } else {
            document.getElementById("<?php echo 'tr' . $row['id']; ?>").style.color = "black";
        }
    }

2 个答案:

答案 0 :(得分:1)

好的简单方法是在js函数中将id作为参数打印

类似的东西:

<input type="checkbox" id="<?php echo $completeCheck;?>" 
          onclick="compTask( '<?php echo $row['id'];?>' );">

并在js函数中处理来自参数的id:

function compTask(id) {
    if (document.getElementById('complete-' + id).checked == true) {
        document.getElementById('tr' + id).style.color = "green";
        alert("hello");
    }
}

答案 1 :(得分:0)

HY,

您需要在onclick="deleteTask('<?php echo $row['id']; ?>')">

中添加ID

现在你的函数有id:

function deleteTask(id) { console.log(id) }