需要从下拉列表中捕获两个值并将它们发布到PHP函数

时间:2014-01-15 14:39:07

标签: php sql-server

我有一个简单的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变量,以便在函数的其他地方使用。

2 个答案:

答案 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> ";