仅当用户存在或具有期望值时才回应用户的输入

时间:2014-09-02 21:17:06

标签: php

我正在为客户的网站构建订单。其中一个页面允许用户通过输入每个零件旁边的数量来选择Vehicle Spareparts。我通过编写以下代码来实现这一目标

<input class="qty" type="number" name="oil-pump" min="0" max="100">

在更改 name 值时,除了每个备件类型之外,还会多次添加上述输入属性。点击提交后,用户将进入评论页面,其中包含订购备件的详细信息。

我目前在评论页面中有以下代码:

<?php
echo 'Engine Bearings: ' . $_POST['eng-bearings'];
echo 'Cylinder Heads: ' . $_POST['cyl-heads'];
echo 'Cam and Valve Train: ' . $_POST['cam-valve-train'];
echo 'Oil Pump: ' . $_POST['oil-pump'];
echo 'Oil Caps and Pipes: ' . $_POST['oil-caps-pipes'];
?>

如果用户在每个字段中输入了值,则此方法很有效。如果他没有,那么评论页面只有没有任何数量的回声文本。此外,如果用户输入0,我也不希望数量适用。

当输入的值为0或空白时,我无法弄清楚如何使用带有null和OR语句的isset()来回显文本。

感谢任何帮助。谢谢!

3 个答案:

答案 0 :(得分:2)

这是功能的绝佳机会:

function print_user_input($title, $queryVar) {
    if (isset($_POST[$queryVar]) && !empty($_POST[$queryVar])) {
        echo $title . ': ' . $_POST[$queryVar];
    }
}

像这样使用它:

print_user_input('Engine Bearings', 'eng-bearings');

答案 1 :(得分:1)

有条件地回应价值。如果目标数据为空,则回显空字符串:

echo empty($_POST['eng-bearings']) ? '': 'Engine Bearings: ' . $_POST['eng-bearings'];

重复其他帖子值。有关三元运算符(<conditional> ? <value1> : <value2>)的信息为here

答案 2 :(得分:0)

你需要检查它的设置和放大器在将它打印在屏幕上之前它不是空的。

<?php
if (! empty($_POST['eng-bearings'])) {
   echo 'Engine Bearings: ' . $_POST['eng-bearings'];
} else {
   // whatever you wanna do here in case eng-bearings is not set or its empty
}

// Do same for other $_POST values ...
?>