假设我有以下表单,其中输入字段Phone
是可选的。
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
Phone (optional): <input type="text" name="phone"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
我想在action
页面中显示提交的数据。所以这里是welcome.php
页面:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your phone number is: <?php echo $_POST["phone"]; ?>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
我的问题是,如果用户未在表单中输入任何电话价值,我如何排除Your phone number is: <?php echo $_POST["phone"]; ?>
部分?简单地说,如果用户将字段留空,则不会在操作页面中生成相应的句子。
实现这一目标的最佳方式是什么?
我只是想学习表单处理的不同方法。我会感激任何建议。提前谢谢。
答案 0 :(得分:3)
只需添加一个检查变量是否为空的条件。 如果是,请打印所需的行。
<?php if(!empty($_POST['phone'])) {
echo 'Your phone number is: '. $_POST["phone"] . '<br />';
}
?>
注意:在打印输入数据之前,请考虑验证/转发输入数据。
更新 - 如果是多个字段:
$fields = array(
'phone' => 'This is my phone number',
'address' => 'I live at',
'zipcode' => 'And my zip code is:'
);
foreach($fields as $fieldname => $label){
$value = $_POST[$fieldname]; //consider escaping/validating the value...
if(!empty($value)){
echo $label . ' ' . $value . '<Br />';
}
}
答案 1 :(得分:1)
试试吧:
<html>
<body>
Welcome <?= $_POST["name"]; ?><br>
<?= (!empty($_POST["phone"])) ? 'Your phone number is: ' . $_POST["phone"] : ''; ?>
Your email address is: <?= $_POST["email"]; ?>
</body>
</html>
这使用?:
三元运算符来确定$_POST["phone"]
是否为空。当<?=
在html标记内时,也可以<?php echo
使用echo
的简写。
另外,请注意 XSS 使用htmlentities()
来转义htmlentities($_POST["phone"])
之类的输出,使用更具体的验证来过滤phone
和email
字符串。
答案 2 :(得分:1)
检查帖子字段是否具有以下值:
<html>
<body>
<?php if(!empty($_POST['name'])) echo 'Welcome '. $_POST['name'] ?><br>
<?php if(!empty($_POST["phone"])) echo 'Your phone number is: '. $_POST["phone"]; ?>
<?php if(!empty($_POST["email"])) echo 'Your email address is: '. $_POST["email"]; ?>
</body>
</html>