如何在PHP echo输出中正确编写HTML标记

时间:2019-01-13 11:26:58

标签: php html

我无法在PHP中正确编写HTML。主要问题是我无法使用<td>来渲染class="btn"

    <tbody class="text-center">
    <?php
        foreach($result as $row)
        {
            $name=$row['name'];
           $email=$row['email'];
           $password=$row['password'];
            echo "<tr>";
            echo "<td>$name</td>";
            echo "<td>$email</td>";
            echo "<td>$password</td>";

            echo (<td><span class="btn btn-outline-primary">Edit</span></td>)";
            echo `<td>
            <span class="btn btn-outline-danger">Delete</span>
            </td>
        echo "</tr>`;
        }

5 个答案:

答案 0 :(得分:1)

有三种方法可以做到这一点:

1)逃生

使用反斜杠来转义PHP字符串中的引号,仅当其中的引号与封装PHP字符串的引号相同时才需要这样做:

import javax.swing.*;
import java.awt.GridLayout;

public class SimpleCheckBox
{
  public static void main(String[] args)
  {
    JCheckBox checkBox = new JCheckBox("Active");
    checkBox.addActionListener(e -> System.out.println("User clicked the check box"));

    JButton print = new JButton("Print status");
    print.addActionListener(e -> System.out.println("Selected: " + checkBox.isSelected()));

    JButton select = new JButton("Select");
    select.addActionListener(e -> checkBox.setSelected(true));

    JButton deselect = new JButton("Deselect");
    deselect.addActionListener(e -> checkBox.setSelected(false));

    JFrame f = new JFrame();
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.getContentPane().setLayout(new GridLayout(4, 1));
    f.getContentPane().add(checkBox);
    f.getContentPane().add(print);
    f.getContentPane().add(select);
    f.getContentPane().add(deselect);
    f.setBounds(300, 200, 400, 300);
    f.setVisible(true);
  }
}

2)替代报价

在HTML中使用“其他”引号样式;例如,如果您使用双引号echo "<td><span class=\"btn btn-outline-primary\">Edit</span></td>"; 来封装PHP字符串,然后在HTML标记中使用单引号"

'

3)“此处为文档”语法

PHP打印功能还使用“ here document”语法进行输出 多行echo "<td><span class='btn btn-outline-primary'>Edit</span></td>"; 插值。
注意:此处文档终止符必须出现在 只需分号就行了,没有多余的空格!

$variable




我的首选/推荐选项是使用方法2

有关更多信息,请参阅the PHP manual

答案 1 :(得分:0)

只需以正确的方式编写代码或遵循标准即可。 您需要在反响内的引号之前加反斜杠

echo "<tr>";
        echo "<td>$name</td>";
        echo "<td>$email</td>";
        echo "<td>$password</td>";

        echo "<td><span class=\"btn btn-outline-primary\">Edit</span></td>";
        echo "<td><span class=\"btn btn-outline-danger\">Delete</span></td>";        
echo "</tr>";

答案 2 :(得分:0)

以下方式也可用于您的代码

当我们在引号内使用引号"时,我们需要使用其他引号'

<?php
    foreach($result as $row)
    {
        echo "<tr>
             <td>$row['name']</td>
             <td>$row['email']</td>
             <td>$row['password']</td>
             <td>
             <span class='btn btn-outline-primary'>Edit</span>
             </td>
             <td>
             <span class='btn btn-outline-danger'>Delete</span>
             </td>
             </tr>";
    }
?>

答案 3 :(得分:0)

如果您将使用 this 实现,那么一切都会很好:) foreach loopecho usagealternative syntax for control structures

<tbody class="text-center">
<?php foreach($result as $row) : ?>
    <tr>
        <td><?= $row['name']; ?></td>
        <td><?= $row['email']; ?></td>
        <td><?= $row['password']; ?></td>
        <td>
            <span class="btn btn-outline-primary">Edit</span>
        </td>
        <td>
            <span class="btn btn-outline-danger">Delete</span>
        </td>
    </tr>
<?php endforeach; ?>

答案 4 :(得分:-1)

似乎您只是忘记了双引号。试试这个

<?php
    foreach($result as $row)
    {
        $name=$row['name'];
        $email=$row['email'];
        $password=$row['password'];
        echo "<tr>";
        echo "<td>".$name."</td>";
        echo "<td>".$email."</td>";
        echo "<td>".$password."</td>";

        echo "<td><span class='btn btn-outline-primary'>Edit</span></td>";
        echo "<td>";
        echo "<span class='btn btn-outline-danger'>Delete</span>";
        echo "</td>";
        echo "</tr>";
    }
?>