删除编写 PHP 模板时过时的 print() 调用


Removing archaic print() calls in writing PHP template

我有一个PHP模板,用于从SQL数据库创建HTML页面。我知道我的做法有点过时,但不知道如何开始修复它。下面是一个代码示例,我在其中从 SQL 数据库创建一个按钮。在此之前,在 PHP 代码中创建了所有 $ 变量。按下按钮时,我正在调用函数watchshow()。 有没有另一种方法应该在没有 print() 的情况下写这个?我希望这个问题足够具体!

 print("<td><a  id=$currentshow_id class='$classname showButton' onclick='"watchshow('$currentshow_id' , '$checked', '$currentshow_genre' );'">$currentshow_title</a></td>"); 
 print("<td class = 'genre'>{$offered_show["showgenre"]}</td>");

您可以将 print() 替换为 echo,并使用多行字符串使其更易于阅读:

echo "<td><a id=$currentshow_id class='$classname showButton' 
            onclick='"watchshow('$currentshow_id', '$checked', '$currentshow_genre')'"
            >$currentshow_title</a></td>
      <td class='genre'>{$offered_show['showgenre']}</td>
";

您可以简化每个<a>中的代码:

echo "<td><a id=$currentshow_id
            class='$classname showButton' 
            data-checked='$checked'
            data-genre='$currentshow_genre'
            onclick='watchshow(this)'
            >$currentshow_title</a></td>
      <td class='genre'>{$offered_show['showgenre']}</td>
";
function watchshow(el) {
    var id = el.id;
    var checked = el.getAttribute('checked');
    var genre = el.getAttribute('genre');
    //...
}