PHP忽略/跳过表单输出中的空字段


PHP ignore/skip empty fields in output from form

我正在创建一个HTML用户表单,当提交时,它被发布到一个PHP页面,以在屏幕上打印用户在表单字段中键入的内容。

我的问题:使用我现有的PHP脚本,它将在HTML字段中没有数据的地方编写空行。如果用户将HTML字段留空,我希望结果跳过整行。这可能吗?

我有一个很标准的表格。我使用$_POST。我现在使用这个:

<?php if (!empty($_POST['fax'])) { 
echo "Fax&nbsp;"; echo $_POST['fax'];} ?><br> 

但是它留下了一个空行。结果应该是一个完整的电子邮件签名。它看起来像这样

Lisa Simpson
CEO
Board of Directors
Tel.: 213123
Fax: 123123
Mobile: 123123

我希望如果用户没有传真号码并将其留空,它应该看起来像这样:

Lisa Simpson
CEO
Board of Directors
Tel.: 213123
Mobile: 123123

感谢您的帮助。

检查$_POST['fax']变量的长度是否大于0,那么您将确定它是否已设置。

 if (strlen($_POST['fax']) > 0) { 
    echo "Fax: " . $_POST['fax'];
 } 

问题是<br>标记id在条件之外,因此值是否存在,<br>将执行并给出空行。试试这样:-

<?php if (!empty($_POST['fax'])) { 
echo "Fax&nbsp;"; echo $_POST['fax'].'<br>';} ?> 

注意:-您需要为所有!empty条件这样做。谢谢。上面的代码只在值存在的情况下给出新行,否则将不输出任何内容。

您似乎没有发送
时间,导致空白行。

你可以使用:

<?php if (!empty($_POST['fax'])) { 
  echo "Fax&nbsp;"; echo $_POST['fax']."<br>";
 } ?> 

在if语句中移动<br>标记

Try This :-
<?php if (!empty($_POST['fax'])) { 
echo "<br> Fax&nbsp;"; echo $_POST['fax'];} ?>

优雅的方式

// binding data
$template = [
    'key' => ['text', null]
    'kye2' => ['text', null],
];
foreach ($_POST as $key => $value)
    foreach ($template as $template_key => $template_value)
        if ($key == $template_key)
            $result[] = $template_value['1'] = $value;
//display data
foreach ($result as $field) echo $field['0'], ': ', $field['0'], '<br>';