【问题标题】:All rows are one column - PHP created table所有行都是一列 - PHP 创建的表
【发布时间】:2014-03-03 00:02:01
【问题描述】:

我需要创建 3 个函数来使用 PHP 创建一个表。但我一直在一行中获取所有数据。它看起来也不是最有效的方法。谁能告诉我出了什么问题,因为看起来所有的 td 都像 tr 一样出现?

<html>
<head></head>
<body>
<?php


function tdFunction1($flavor1, $flavor2, $flavor3)
{
    echo "<td>";
    echo $flavor1;
    echo "</td>";
    echo "<td>";
    echo $flavor2;
    echo "</td>";
    echo "<td>";
    echo $flavor3;
    echo "</td>";
}

function tdFunction2($dessert1, $dessert2, $dessert3)
{
    echo "<td>";
    echo $dessert1;
    echo "</td>";
    echo "<td>";
    echo $dessert2;
    echo "</td>";
    echo "<td>";
    echo $dessert3;
    echo "</td>";
}

function tdFunction3($temp1, $temp2, $temp3)
{
    echo "<td>";
    echo $temp1;
    echo "</td>";
    echo "<td>";
    echo $temp2;
    echo "</td>";
    echo "<td>";
    echo $temp3;
    echo "</td>";
}


echo "<table border=1 style='width:100%;'>";
echo tdFunction1("chocolate", "apple", "vanilla");
echo tdFunction2("Lava Cake", "Cheesecake", "Cream Puffs");
echo tdFunction3("hot", "cold", "cold");
echo "</table>";


?>
</body>
</html>

我将它切换到下面的内容,但我得到了一个 致命错误:

在第 39 行调用 C:\xampp\htdocs\Trash\index.php 中未定义的函数 colFunction1()(我的 3 个 echo colFunction 中的第一个)

<html>
<head></head>
<body>
<?php

function tableFunction()
{
    echo "<table border=1;>";

    function rowFunction()
    {
        echo "<tr>";
        function colFunction1($flavor1, $flavor2, $flavor3)
        {
            echo "<td>".flavor1."</td><td>".flavor2."</td><td>".flavor3."</td>";
        }
        echo "</tr>";


        echo "<tr>";
        function colFunction2($dessert1, $dessert2, $dessert3)
        {
            echo "<td>".dessert1."</td><td>".dessert2."</td><td>".dessert3."</td>";
        }
        echo "</tr>";


        echo "<tr>";
        function colFunction3($temp, $temp2, $temp3)
        {
            echo "<td>".temp1."</td><td>".temp2."</td><td>".temp3."</td>";
        }
        echo "</tr>";
    }

    echo "</table>";
}

echo colFunction1("chocolate", "apple", "vanilla");
echo colFunction2("Lava Cake", "Cheesecake", "Cream Puffs");
echo colFunction3("hot", "cold", "cold");

?>
</body>
</html>

好吧,我玩弄了它并“认为”我想通了(以防其他人和我一样困惑)。
我创建了一个行函数来创建另一行。 我创建了列函数来获取三个函数输入。 然后我创建了表来创建一个可以自己调用的表。 我祈祷我不只是按原样打印出回声,但我不这么认为。如果我错了,请有人指出来。

<html>
<head></head>
<body>
<?php

function trFunction()
{
    echo"<tr>";

    echo"</tr>";
}
function tdFunction($flavor1, $flavor2, $flavor3)
{
    echo"<td>".$flavor1."</td>"; 
    echo"<td>".$flavor2."</td>";
    echo"<td>".$flavor3."</td>";
}
function tableFunction()
{
echo "<table width=400px border=5px cellpadding=3px td style=text-align:center;>";
echo trFunction();
echo tdFunction("Chocolate", "Strawberry","Vanilla" );
echo trFunction();
echo tdFunction("Molten Lava Cake", "Cheesecake", "Cream Puffs");
echo trFunction();
echo tdFunction("Hot","Cold","Cold");
echo "</table>";
}

echo \tableFunction();
?>
</body>
</html>

【问题讨论】:

  • 我在这里看不到一个 &lt;tr&gt; 标签!也许这就是问题所在!

标签: php html-table row echo multiple-columns


【解决方案1】:

好吧,我玩弄了它并“认为”我想通了(以防其他人和我一样困惑)。
我创建了一个行函数来创建另一行。 我创建了列函数来获取三个函数输入。 然后我创建了表来创建一个可以自己调用的表。 我祈祷我不只是按原样打印出回声,但我不这么认为。如果我错了,请有人指出来。

<html>
<head></head>
<body>
<?php

function trFunction()
{
    echo"<tr>";

    echo"</tr>";
}
function tdFunction($flavor1, $flavor2, $flavor3)
{
    echo"<td>".$flavor1."</td>"; 
    echo"<td>".$flavor2."</td>";
    echo"<td>".$flavor3."</td>";
}
function tableFunction()
{
echo "<table width=400px border=5px cellpadding=3px td style=text-align:center;>";
echo trFunction();
echo tdFunction("Chocolate", "Strawberry","Vanilla" );
echo trFunction();
echo tdFunction("Molten Lava Cake", "Cheesecake", "Cream Puffs");
echo trFunction();
echo tdFunction("Hot","Cold","Cold");
echo "</table>";
}

echo \tableFunction();
?>
</body>
</html>

【讨论】:

  • 对我来说效果很好。但是,您有 tableFunction() 的 \ 吗?无论有没有它,它都可以工作。
  • 就斜线而言,我不记得在我遇到的任何教程中看到过它。但是在使用 NetBeans 时,当我为 echo 输入它时,它问我是否想要它来修复语法,所以我说是的,它就在那里。
  • 啊,如果它有效,最好不要管它 ;-) 无论哪种方式都有效。我 +1 顺便说一句。
【解决方案2】:

你没有任何表格行 echo"&lt;tr&gt;&lt;td&gt;".$temp1."&lt;/td&gt;&lt;td&gt;".$temp2."&lt;/td&gt;&lt;/tr&gt;" 会给你一个 2 列的行。

【讨论】:

  • 这给了我一行的列。但是我需要 3 个函数来为我提供将在函数内部用于行和所有在表函数内部的列(创建表标签)。我知道它没有显示,但我试图从某个地方开始,这并没有给我列,只是行。
【解决方案3】:

您忘记了标签 ''(打开的行)和 '(关闭的行)。

一个想法。你有多余的代码。而不是为同一事物使用三个函数,而是使用如下函数:

function printRow($val1, $val2, $val3)
{
  echo '<tr>';
  echo '<td>'.$val1.'</td><td>'.$val2.'</td><td>'.$val3.'</td>';
  echo '</tr>';
}

echo "<table border=1 style='width:100%;'>";
printRow("chocolate", "apple", "vanilla");
// etc.
echo "</table>";

甚至更好的循环:

function printRow($values = array())
{
  $s = '<tr>';

  foreach($values as $value)
  {
    $s.= '<td>'.$value.'</td>';      
  }
  $s.= '</tr>';
  return $s;
}

$valuesToShow[] = array("chocolate", "apple", "vanilla");
$valuesToShow[] = array("Lava Cake", "Cheesecake", "Cream Puffs");
$valuesToShow[] = array("hot", "cold", "cold");

//create table:
echo "<table border=1 style='width:100%;'>";

foreach($valuesToShowas as $value)
{
  echo printRow($value);
}

echo "</table>";

【讨论】:

  • 我看到所有这些都会给我一张桌子。但我有具体情况。我不希望你给我完整的解决方案,但一个方向会有所帮助。细节是:创建一个 td() 函数,弄清楚如何使用它以及如何用它创建一个 TR 标签。然后,把这个想法变成你的 tr() 函数。然后,弄清楚如何使用 tr() 函数来创建一个完整的 TABLE 标签……最后,将这个想法放入 table() 函数中。从您的“主”php 代码中调用该 table() 函数。**** 就像我说的,我不想要解决方案,只是一个如何嵌套这些函数的方向。
猜你喜欢
  • 2020-11-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-20
  • 2019-03-03
  • 1970-01-01
  • 2016-09-13
  • 2012-03-09
相关资源
最近更新 更多