如果表单字段留空,如何从HTML电子邮件中删除表行

时间:2016-07-31 05:50:04

标签: javascript php html forms

我正在为我工​​作的地方的材料订单表单工作以节省资金。到目前为止,我有大约90%的不同部分工作,我希望他们如何工作。我是各方面编码的新手,所以如果这是一些超级基本概念我会道歉。我已经在网上搜索了几天试图找到解决方案,但每次我遇到一些有用的东西,比如“使用这个JS脚本”,我会遇到类似的问题,“不要使用JS脚本”

所以,问题是:如何删除已留空的表单字段的html电子邮件中的相应表格行?

我在另一个问题中遇到了类似的问题:PHP: Do not email form fields that are left blank,但它并没有多大帮助,因为我的电子邮件是一张桌子而且我不想要一个空的表格行代替空字段。< / p>

这是我对表单的html:

<form action ="testemail.php" method="post">
<label>Tube</label>
    <table>
        <tr>
            <th>Type</th>
            <th>Qty</th>
        </tr>
                <td>
                    <select name="tube">
                        <option value=""></option>
                        <option value="Steel">Steel</option>
                        <option value="Aluminum">Aluminum</option>
                    </select>
                </td>
                <td>
                    <input type="number" name ="tubeqty">
                </td>
    </table>
<br>
<br>
<label>Brace</label>
    <table>
        <tr>
            <th>Type</th>
            <th>Qty</th>
        </tr>
                <td>
                    <select name="brace">
                        <option value=""></option>
                        <option value="Steel">Steel</option>
                        <option value="Aluminum">Aluminum</option>
                    </select>
                </td>
                <td>
                    <input type="number" name ="braceqty">
                </td>
    </table>
<br>
<br>
<hr>
<h2>Submit Form</h2>
        <br>
        <h3>If you are sure that everything is filled out correctly, then hit "Submit".</h3>
            <input type="submit" value="Submit">    

PHP看起来像这样:

<?php
$to = "example@test.com";

$tube = $_POST['tube'];
$tubeqty = $_POST['tubeqty'];
$brace = $_POST['brace'];
$braceqty = $_POST['braceqty'];

$message = <<<EMAIL

<html>
<body>
<table width="600" cellpadding="0" cellspacing="0" align="left">
<tr>
<td width="143">
<h2>Item</h2>
</td>
<td width="10">&nbsp;</td>
<td width="143">
<h2>Type</h2>
</td>
<td width="10">&nbsp;</td>
<td width="143">
<h2>Qty</h2>
</td>
</tr>
</table>
<br>
<table rules="all" cellpadding="0" cellspacing="0" align="left" style= "border: solid black 1px;" "border-collapse:collapse;">
<tr><td  width="143"Tube</td><td width="143">$tube</td><td width="143"></td><td width="143">$tubeqty</td></tr>
<tr><td  width="143">Brace</td><td width="143">$brace</td><td width="143"></td><td width="143">$braceqty</td></tr>
</table>
</body>
</html>

EMAIL;

$subject = "New Order Form";

$headers = "MIME-Version: 1.0\r\nContent-Type: text/html; charset=ISO-8859-l\r\n";

mail($to, $subject, $message, $headers);
?>
<!DOCTYPE html>
<body>
<h1>Thanks for submitting.  We will get on that order ASAP!</h1>
</body>
</html>

这是我可以用PHP函数做的吗?我是否可能需要更改HTML以添加类类型或更好的name=""?任何帮助都会非常受欢迎,即使是我应该谷歌搜索的条款。

提前致谢。

1 个答案:

答案 0 :(得分:0)

看起来您只想检查每个提交的表单变量是否为empty(),如果不是,请将表行附加到电子邮件消息字符串中。您可以对代码进行简单的更改,如下所示:

$message = <<<EMAIL
<html>
<body>
<table width="600" cellpadding="0" cellspacing="0" align="left">
<tr>
<td width="143">
<h2>Item</h2>
</td>
<td width="10">&nbsp;</td>
<td width="143">
<h2>Type</h2>
</td>
<td width="10">&nbsp;</td>
<td width="143">
<h2>Qty</h2>
</td>
</tr>
</table>
<br>
<table rules="all" cellpadding="0" cellspacing="0" align="left" style= "border: solid black 1px;" "border-collapse:collapse;">
EMAIL;

if (!empty($tube)) {
  $message .= "<tr><td width='143'>Tube</td><td width='143'>$tube</td><td width='143'></td><td width='143'>$tubeqty</td></tr>";
}
if (!empty($brace)) {
  $message .= "<tr><td width='143'>Brace</td><td width='143'>$brace</td><td width='143'></td><td width='143'>$braceqty</td></tr>";
}

$message .= "</table>
</body>
</html>";

您可以为其他表单字段添加更多if (!empty($var)) { }项检查。