我有一个简单的MSSQL表,有三列:名称,电子邮件,类型。
“类型”列只是1-9中的一个数字,用于标识批准者的类型。
我的应用程序中有一个下拉列表,该列表填充在上表中。
<?php
echo "<select name=\"approvEmail\">";
$list = $con->prepare("SELECT ApproverName, ApproverEmail, ApproverType FROM
ApproverList");
$list->execute();
while($row = $list->fetch(PDO::FETCH_BOTH))
{
echo "<option value='".$row['ApproverEmail']."'>".$row['ApproverName']."
</option> ";
}
echo "</select>";
?>
用户选择要将表单邮寄到的人员的姓名,后端功能使用ApproverEmail值发送。没有问题。但是当我选择用户时,我还需要选择ApproverType,而我不清楚如何做到这一点。它需要是一个单独的POST变量,以便在函数的其他地方使用。
答案 0 :(得分:1)
您需要返回数据库才能获得ApproverType
。
即使你在表单中创建了第二个字段并找到了一种同步其值的方法,比如使用Javascript,如果用户决定破解它,你仍然会遇到问题。如果他们更改了ApproverType提交怎么办?您信任具有此信息的客户表单并且它是计算值,因此不合适。
处理此问题的正确方法是在提交脚本中执行另一个SQL查询:'SELECT ApproverType FROM ApproverList WHERE ApproverEmail = '.$_POST['ApprovEmail']
。这可确保您始终获得合适的类型。
为了更进一步,如果ApproverList
表上有自动增量主键,您可能希望使用此代替ApproverEmail
字段来获取此值的值 - 下。通过主键从数据库中检索此记录总是更快,并且您可以在检索类型时轻松检索电子邮件。
答案 1 :(得分:0)
尝试这样的事情来制作你的自定义属性
echo "<option apporverType='".$row['ApproverType']."' value='".$row['ApproverEmail']."'>".$row['ApproverName']."
</option> ";