由于某种原因,我可以使$ _POST与输入完美配合,但不能与select语句配合使用。这是我的代码:
registration.php
<form class="form-horizontal" action="results.php" method="post">
<div class="form-group">
<label class="col-md-4 control-label" for="user_type">Type</label>
<div class="col-md-4">
<select id="user_type" name='user_type' class="form-control">
<option selected="" value="<?php if (isset($user_type)) { echo 'admin'; } ?>">Faculty</option>
<option value="<?php if (isset($user_type)) { echo 'registeredUser'; } ?>">Student</option>
</select>
</div>
</div>
<!-- Submit Button -->
<div class="form-group">
<div class="col-md-12">
<button id="submit" name="submit" class="btn btn-primary center-block"> <span class="k-icon k-si-plus"></span>Submit</button>
</div>
</div>
</form>
results.php
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
// Setting the form inputs to variables
$first_name = trim($_POST["first_name"]);
$last_name = trim($_POST["last_name"]);
$email_address = trim($_POST["email_address"]);
if (isset($_POST["submit"])) {
$user_type = $_POST['user_type'];
echo $user_type . '<br><br>';
}
echo $first_name . '<br><br>';
echo $last_name . '<br><br>';
echo $email_address . '<br><br>';
}
输出:
亚历克斯
科里
关于为什么$ _POST ['user_type']的任何想法;不工作吗?
假设您发布的内容是全部内容,registration.php
那么问题在于每个user_name
选项的值都包含一个空字符串。
您的脚本生成的实际HTML是:
<select id="user_type" name='user_type' class="form-control">
<option selected="" value="">Faculty</option>
<option value="">Student</option>
</select>
发生这种情况是因为您的registration.php
脚本$user_data
在将admin
或的值添加registeredUser
到<option>
标记之前正在检查PHP变量是否已设置。
如果我们扩展您的代码,您会看到该if
条件永远不会触发:
<option selected="" value="<?php
if (isset($user_type)) {
// This will never be fired because the PHP variable $user_data is not set.
echo 'admin';
}
// The result is that nothing is echoed so the HTML reads value=""
?>">Faculty</option>
要解决此问题,请删除条件检查:
<select id="user_type" name='user_type' class="form-control">
<option selected="selected" value="admin">Faculty</option>
<option value="registeredUser">Student</option>
</select>
或$user_data
在脚本开始处设置:
<?php $user_data = true; ?>
<form class="form-horizontal" action="results.php" method="post">
<div class="form-group">
...
但是我认为您真正想要实现的是确定要在表单中选择的那些选项中进行填充。如果是这种情况,则应检查$user_type
已设置的值,如果它的值与选项值匹配,则将该选项标记为已选中。
<select id="user_type" name='user_type' class="form-control">
<option <?php
if (isset($user_type) && $user_type === 'admin') {
echo 'selected="selected" ';
}
?>value="admin">Faculty</option>
<option <?php
if (isset($user_type) && $user_type === 'registeredUser') {
echo 'selected="selected" ';
}
?>value="registeredUser">Student</option>
</select>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句