PHP以不同的顺序显示标签

时间:2014-02-20 13:19:44

标签: php html-table

我有以下问题,我有一个数据库中的产品列表,并希望在表格中显示它们不幸它为我起了一些技巧,因为它在表格开始之前显示一个td。

以下是PHP函数:

<?php
function displayProduct($code,$url)
{
    echo '<form method="post" action="cart_update.php"><input type="hidden" name="code" value="' . $code . '"/>';
    echo '<input type="hidden" name="return_url" value="' . $url . '" />';
    echo '<input type="hidden" name="type" value="add" /><input type="submit" value="Add" /></form>';
}

function displayItem($obj,$url)
{
    echo '<tr>';
    echo '<td>' . $obj->menuposition . '</td><td>' . $obj->name . '</td><td>' . '£'.$obj->price . '</td><td>' . displayProduct($obj->code,$url) .'</td>';
    echo '</tr>';

    if(strlen($obj->description) > 2)
    {
        echo '<tr><td colspan="4" style="font-size: 10px;">' . $obj->description . '</td></tr>';
    }

}
?>

这是我得到的HTML输出:

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

来自echo的{​​{1}}来电发生在displayProduct echo来电之前。

我可以看到两种解决方案。

1:displayItem应该返回要写的内容,而不是displayProduct

2:

echo

答案 1 :(得分:1)

displayProduct($ code,$ url)应返回字符串而不是将其打印出来:

function displayProduct($code,$url)
{
    $result = '<form method="post" action="cart_update.php"><input type="hidden" name="code"             value="' . $code . '"/>';
    $result .='<input type="hidden" name="return_url" value="' . $url . '" />';
    $result .='<input type="hidden" name="type" value="add" /><input type="submit" value="Add"     /></form>';
    return $result
}

答案 2 :(得分:1)

[编辑]我应该更好地阅读这些问题...

但这仍然适用:

同样正如Adrian所说,你不应该echo“displayProducts”中的行,而是返回一个字符串。