防止空表单字段返回


Empty form field return prevention

对PHP进行新排序。

好吧,我为各种产品在两个表格上做了一个很大的字段集。表格有效。脚本是用PHP编写的,形式是HTML。填写时发送电子邮件。

然而,它会发送所有字段,甚至是留空的字段,因此订购数量的数字列从上到下依次为零、一、二、三等。这本身并不是一个错误,但阅读它的人现在必须费力地查找五到十个不同项目的数量,并忽略旁边有零的产品。

相信我,目前的退货甚至没有我下面的退货那么容易阅读,而是相当混乱,你可能很容易错过产品请求,尤其是在忙于许多订单的情况下。

我没有编程它为空白字段返回任何零,但我甚至不希望它返回根本没有订购的产品的名称。我只想让它只返回填写的字段,而不返回其他字段,但我不知道如何返回。

电流输出

Product #1   1
Product #2   0
Product #3   3
Product #4   0
Product #5   0
Product #6   0
Product #7   0
Product #8   0
Product #9   0
Product #10  1
Product #11  0 
Product #12  0
Product #13  2
Product #14  0
Product #15  0
Product #16  0
Product #17  0
Product #18  0
Product #19  0

期望输出

Product #1  1
Product #3  3
Product #10 1
Product #13 2

我猜您的电子邮件是通过循环使用$_POST数组构建的。这样的东西应该会有所帮助:

foreach($_POST AS $key => $val) {
    if(empty($val)) {
        unset($_POST[$key]);
    }
}

现在,当您构建电子邮件时,零值POST变量甚至不存在。

更新:现在我已经看到了你的完整代码(显然是写入文件,而不是直接发送电子邮件),你需要更改这一行(13):

while (list ($key, $val) = each ($query_vars)) {

然后添加一个简单的检查,这样你就可以得到:

while (list ($key, $val) = each ($query_vars)) {
    if(empty($val)) continue; // If we have an empty value, ignore and move on

试试看。