我如何得到一个php表打印的输入值的范围,但忽略那些没有填写


How do I get a php table to print a range of input values but, ignore the ones that are not filled in?

我为一个公司网站做了一个表单,用户将填充个人信息。我想使用php来处理这些值,然后将它们呈现为可以打印的表。我以前这样做过,但只针对所有内容都已填写的表格。我想让这一个,如果用户决定留下一个空白字段,那么你不会看到它在php渲染页面。我将在下面发布一个小示例,以供参考,以帮助解决我的问题,因为现在我不知道从哪里开始。

表单示例…

<form action="post">
    <p><input type="text" id="name" name="name"></p>
    <p><input type="text" id="phone" name="phone"></p>
    <p><input type="text" id="job" name="job"></p>
</form>

在这个示例表单中,我正在收集姓名、电话号码和职业。在底部,我会有一个按钮来提交信息。然后,php文档将处理这些值,并将它们呈现在如下所示的表中…(假设我$_POST这个表上面的变量)

'<table>
    <tr>
        <td>Name:' .$name. '</td>
        <td>Phone:' .$phone. '</td>
        <td>Job:' .$job. '</td>
    </tr>
</table>'

这很好,但是如果客户决定不提供电话号码,它看起来像这样…

名称:亚历克斯电话:

工作:消防员

我需要做的是,如果他们填写了电话号码,它就会显示出来如果他们没有填写电话号码,我需要它看起来像这样…

名称:亚历克斯

工作:消防员

我的实际形式很长,但我认为这个例子足以让某人帮助我开始,提前感谢您的反馈。

循环遍历$_POST数组,当它有值时打印出一个键值。

foreach($_POST as $key=>$value)
{
    if($value != '')
    {
        echo ucwords($key) . ': ' . $value;
    }
}

带表格格式

// Just set the table up as necessary
echo '<table><tr>';
foreach($_POST as $key=>$value)
{
    if($value != '')
    {
        echo '<td>' . ucwords($key) . ': </td><td>' . $value . '</td>;
    }
}
echo '</tr></table>';

答案是使用PHP的empty函数。在处理PHP文件中试试:

echo "<table><tr>";
if(!empty($name)) echo "<td>Name: $name</td>";
if(!empty($phone)) echo "<td>Phone: $phone</td>";
if(!empty($job)) echo "<td>Job: $job</td>";
echo "</tr></table>";

就像这样,基于你的字符串。

$table = '<table>
<tr>';
if (!empty($name)) {
    $table .= '<td>Name:' .$name. '</td>';
}
if (!empty($phone)) {
    $table .= '<td>Phone:' .$phone. '</td>';
}
if (!empty($job)) {
    $table .= '<td>Job:' .$job. '</td>';
}
$table .= '</tr>
</table>';
echo $table;