我有以下问题,我有一个数据库中的产品列表,并希望在表格中显示它们不幸它为我起了一些技巧,因为它在表格开始之前显示一个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输出:
有人可以帮助我吗?
答案 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”中的行,而是返回一个字符串。