如何运行用PHP生成的HTML代码?

时间:2017-03-13 18:37:26

标签: php html

我创建了一个PHP函数,它根据用户对列和行号的选择创建用于创建表的html代码。

因此,用户打开一个HTML页面,输入列数和行数,然后PHP生成该表的HTML代码。

但是,我喜欢它,以便PHP不会创建表的代码,而只是创建一个HTML表。

我怎样才能做到这一点?

HTML文件:

<html>
<form action="tableCode.php" method="get" />
<p> Enter the number of rows
  <input type="text" name="row"/>
  and the number of columns:
  <input type="text" name="col"/>
  <input type="submit" name="Submit" value="Submit" />

</p>
</form>
</body>
</html>

PHP文件

<?php


$row = $_GET['row'];
$col = $_GET['col'];

function makeTable($row,$col)
{
  $begin = "&lthtml&gt <br> &lthead&gt <br> &ltstyle&gt <br> table, th, td {border: 1px solid black;} 
  <br> &lt/style&gt <br> &lt/head&gt <br> &ltbody&gt <br> &lttable style=width:100%&gt <br>"; 
  for($i = 0; $i < $row; $i++)
  {
    $begin .= "&lttr&gt <br>";
    for($j = 0; $j < $col; $j++)
    {
        $begin .= "&lttd&gt Enter column data here &lt/td&gt <br>";
    }
    $begin .= "&lt/tr&gt <br>"; 
  }
  $begin .= "&lt/table&gt <br> &lt/body&gt <br> &lt/html&gt";
  echo $begin;  
}
makeTable($row,$col);
?>

调用makeTable(2,2)时返回的字符串

<html> 
<head> 
<style> 
table, th, td {border: 1px solid black;} 
</style> 
</head> 
<body> 
<table style=width:100%> 
<tr> 
<td> Enter column data here </td> 
<td> Enter column data here </td> 
</tr> 
<tr> 
<td> Enter column data here </td> 
<td> Enter column data here </td> 
</tr> 
</table> 
</body> 
</html>

3 个答案:

答案 0 :(得分:4)

将您的所有&lt更改为<,将所有&gt更改为>,然后从代码中删除<br>,因为这会生成无效的HTML。如果您关心基础HTML呈现的方式,则可以将<br>更改为\n

例如:

$begin .= "&lttr&gt <br>";

成为

$begin .= "<tr>";

$begin .= "<tr>\n";

答案 1 :(得分:0)

HTML是一种标记语言,它不一定是&#34;运行&#34;。

您使用"&lthtml&gt"而不是<html>输出表格,这就是它无效的原因。

答案 2 :(得分:0)

使用带有Javascript的Ajax调用,只需在PHP中“打印”,即表格的HTML代码,而不是整个页面:

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $("button").click(function(){
        $.ajax({url: "tableCode.php",type:"get",data:{"row":document.getElementById("rows").value,"col":document.getElementById("cols").value}
            success: function(result){
                $("#div1").html(result);
            }});
    });
});
</script>
</head>
<body>
<p>how many rows?</p><br>
<input id="rows" value="2"/><br>
<p>how many cols?</p><br>
<input id="cols" value="2"/><br>
<div id="div1"><h2>Here will be your table</h2></div>

<button>Get the table!</button>

</body>
</html>

所以,你的php文件现在只是回显:

<?php
    $row = $_GET['row'];
    $col = $_GET['col'];

    function makeTable($row,$col)
    {
      $begin = "<table style='width:100%'>\n"; 
      for($i = 0; $i < $row; $i++)
      {
        $begin .= "<tr>\n";
        for($j = 0; $j < $col; $j++)
        {
            $begin .= "<td> Enter column data here </td>\n";
        }
        $begin .= "</tr>\n"; 
      }
      $begin .= "</table>\n";
      echo $begin;  
    }
    makeTable($row,$col);
    ?>