href确认onclick意外返回

时间:2018-11-30 20:58:07

标签: javascript php html onclick

当您单击图标时,我试图显示确认消息。 但是当我单击图标时,我收到一条消息,说: 解析错误:语法错误,第42行上的...中出现意外的“返回”(T_RETURN)

我尝试使用引号,但无法正常使用 这是第42行的代码:

echo "<td>".$row["id"]."</td><td>".$row['naam']."</td><td>".$row['adres']."</td><td>" . $row['email'] . "</td><td><a href='index.php'><i class='fas fa-pen'></i></a></td><td>
              <a href="delete.php?id=<?php echo $row["id"];?>"onclick="return confirm('Are you sure?');"><i class='fas fa-user-times'></i></a></td>";

谢谢。

2 个答案:

答案 0 :(得分:1)

因此,这就是通常的工作方式。您的PHP和HTML是分开的-理想情况下是分开的文件,但是至少您不应该使用echo语句输出页面的大块内容。脱离PHP模式可输出大部分页面,仅在需要输出变量或需要像循环这样的控件结构时才返回。在这段代码中,我使用了alternative syntax for control structuresshort echo tag使事物(IMO)更加整洁。最后说明,请使用htmlspecialchars()以确保正确地转义值。

对于JavaScript,您应使用event listeners将操作附加到元素,如以下示例所示。使用library like jQuery会更容易,但也足够简单以使用本机DOM代码。

<?php
$conn = ...
$sql = "SELECT id, naam, adres, email FROM klanten";
$result = $conn->query($sql);
// do some error checking on the result before proceding
?>
<html>
...
<table>
<?php foreach($result->fetch_assoc() as $row): ?>
    <tr>
        <td><?=htmlspecialchars($row["id"])?></td>
        <td><?=htmlspecialchars($row["naam"])?></td>
        <td><?=htmlspecialchars($row["adres"])?></td>
        <td><?=htmlspecialchars($row["email"])?></td>
        <td>
            <a href='index.php'>
                <i class='fas fa-pen'></i>
            </a>
        </td>
        <td>
            <a href="delete.php?id=<?=htmlspecialchars($row["id"])?>" class="delete">
                <i class="fas fa-user-times"></i>
            </a>
        </td>
    </tr>
<?php endforeach ?>
</table>
...
<script>
    // look for every element with the "delete" class
    var links = document.getElementsByClass("delete");
    // loop over each one that we find
    for (var i = 0; i < links.length; i++) {
        // run a function when the element is clicked
        links[i].addEventListener("click", function(e) {
            return confirm("Are you sure?");
        }, false);
    }
</script>

答案 1 :(得分:0)

这不是很实际,也不是一个答案,而是找到答案的一种方法。

尝试执行此操作。在了解到错误出现在哪一行之后,我们可以修复/清理代码。如果没有错误出现,那么我们也会尝试修复/清除代码。

echo "<td>".$row['id']."</td>";
echo "<td>".$row['naam']."</td>";
echo "<td>".$row['adres']."</td>";
echo "<td>".$row['email']."</td>";
echo "<td><a href='index.php'><i class='fas fa-pen'></a></td>";
echo "<td><a href='delete.php?id=".$row['id']." onClick='return confirm(\"Are you sure?\");'><i class='fas fa-pen'></a></td>";