将下拉菜单中的选项存储到数据库中


Store option from drop down menu into database

我的html代码中有以下表单字段:

<select class="secret_question">
                     <option value ="1">The name of the city where you were born</option>
                     <option value ="2">The name of your first pet</option>
                     <option value ="3">What is your mother's maiden name</option>
                  </select>

问题:如何将所选选项存储到数据库中。我已经能够用以下代码将名称、电子邮件id等普通字段存储到数据库中:

$firstname = $_REQUEST['firstname'];
    $lastname = $_REQUEST['lastname'];
$stmt = $dbh->prepare("INSERT INTO users (firstname,lastname) VALUES ('$firstname', '$lastname')");

我对选择列表尝试了同样的技术,但它给了我"undefined index"错误

如果表单元素不是"命名的",则会出现undefined index错误。

您需要将您的<select>命名如下:

<select class="secret_question" name="secret_question">

然后使用$secret_question = $_REQUEST['secret_question'];

例如:

$firstname = $_REQUEST['firstname'];
$lastname = $_REQUEST['lastname'];
$secret_question = $_REQUEST['secret_question'];
$stmt = $dbh->prepare("INSERT INTO users (firstname,lastname,secret_question) 
VALUES ('" . $firstname . "', '" . $lastname . "', '" . $secret_question . "')");

将DB列命名为secret_question

使用以下约定更安全:

'" . $firstname . "'代替'$firstname'

但是,您可能希望使用输入字段而不是<select>,因为人们可能会自己输入答案,这取决于您的设置方式。