【问题标题】:php, returning a value form a function using conditional statementsphp,使用条件语句从函数返回值
【发布时间】:2012-03-28 22:43:40
【问题描述】:

我正在制作一个使用 sql 数据库填充的下拉菜单。使用下面的 popDropDown 函数,我正在获取所有需要的数据并为动态人口创建所需的 HTML。

问题来了……我很难返回所选的电子邮件地址。我意识到这里没有记录将处理我的请求的 POST 内容。我想知道是否有任何方法可以返回用户使用下拉菜单选择的电子邮件地址。最终结果将使用返回的地址 + 主题和消息来生成电子邮件。

我忘了说什么?提前谢谢。

$emailAd = popDropDown($results);


function popDropDown($results){
$_email="";
while($row=$results->fetch_assoc())
{
    $email=$row['EmailAddress'];
    $id=$row['id'];
    $Name=$row['MemberName'];

    //echo $email."<br>";
    if ($_POST['emailMenu']==$id)
        {
        echo '<option value="'.$id.'"selected>'.$email."</option>";
        $_email=$email;
        }
    else
        echo '<option value="'.$id.'">'.$email."</option>";
}
return $_email;

}

【问题讨论】:

  • 你现在正在做的事情有什么问题?
  • 尝试回显相关变量,尤其是 $_POST['emailMenu'] 和 $id 并查看它们为什么永远不相等(假设是问题所在)。
  • @Ynhockey - 我确实回显了 $_POST['emailMenu'] 并返回了 $id 号码(因为 $_POST['emailMenu']==$id(?))。问题是需要返回相关的$email地址。

标签: php function conditional return


【解决方案1】:

嗯。为什么要这样做?如果要发布的表单已经包含您要使用的电子邮件记录的ID,那么您不需要需要获取所有行并通过它们翻找您想要的行,您只需直接查询对于您知道需要的 ONE 行:

function popDropDown() {
   $sql = "SELECT email FROM yourtable WHERE id=" . (int)$_POST['emailMenu'];
   $result = mysql_query($sql) or die(mysql_error());
   if (mysql_num_rows($result) == 0) {
       return null;
   }
   $row = mysql_fetch_assoc($result);
   return($row['email']);
}

【讨论】:

  • Marc - 我正在创建一个电子邮件表单,用户可以在其中使用下拉菜单来选择电子邮件的收件人。在您的示例中,没有创建此下拉菜单。对吗?
  • 您的解决方案确实帮助我找到了方向。谢谢。
猜你喜欢
  • 2012-04-02
  • 1970-01-01
  • 2019-07-16
  • 1970-01-01
  • 2020-02-27
  • 2019-05-07
  • 2011-06-06
相关资源
最近更新 更多