虽然我意识到这不是最有效的代码,但它不会在八月或九月!我使用PHP 5.4和XHTML 1.0 Transitional。 我已经在持续的IE,Firefox和Google浏览器中测试过它。我检查了发送给浏览器的代码,并且在八月或九月没有什么不同。所有其他的月份工作正常。 当用户第一次遇到屏幕时,存储的birthmonth将从数据库中提取并爆炸。但是8月和9月不会在下拉列表中选择(但是08或09会按照该代码位置回显到屏幕上)。 如果用户点击下拉列表(月),选择8月或9月,并点击savebtn,8月或9月将不会在下拉列表中正确选择(但08或09将被回显到屏幕上那一点代码)。 哦,并且应该选择8月或9月时,选择1月。 非常感谢您提前!在数字使用PHP,为什么选择的选项不总是工作?
// Basically, if the savebtn was clicked:
$birthmonth = mysqli_real_escape_string($dbc, trim($_POST['birthmonth']));
$birthday = mysqli_real_escape_string($dbc, trim($_POST['birthday']));
$birthyear = mysqli_real_escape_string($dbc, trim($_POST['birthyear']));
$birthdate = $birthyear. '-' . $birthmonth. '-' . $birthday;
echo '<p>The savebtn was clicked. Birthdate: ' . $birthdate . '</p>';
echo '<p>The savebtn was clicked. Birthmonth: ' . $birthmonth . '</p>';
// Basically, if the savebtn was NOT clicked
$birthdate = $row['birthdate'];
if (!empty($birthdate))
list($birthyear, $birthmonth, $birthday) = explode('-', $birthdate);
echo '<p>The savebtn was NOT clicked. DB birthdate: ' . $birthdate . '</p>';
echo '<p>The savebtn was NOT clicked. DB birthmonth: ' . $birthmonth . '</p>';
<form name="usersform" id="usersform" enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<label for="birthmonth" class="label2">Month:</label>
<select name="birthmonth" id="birthmonth">
<?php
if (!empty($birthmonth) && ($birthmonth == 01))
echo '<option selected="selected" value="01">January</option>';
else
echo '<option value="01">January</option>';
if (!empty($birthmonth) && ($birthmonth == 02))
echo '<option selected="selected" value="02">February</option>';
else
echo '<option value="02">February</option>';
if (!empty($birthmonth) && ($birthmonth == 03))
echo '<option selected="selected" value="03">March</option>';
else
echo '<option value="03">March</option>';
if (!empty($birthmonth) && ($birthmonth == 04))
echo '<option selected="selected" value="04">April</option>';
else
echo '<option value="04">April</option>';
if (!empty($birthmonth) && ($birthmonth == 05))
echo '<option selected="selected" value="05">May</option>';
else
echo '<option value="05">May</option>';
if (!empty($birthmonth) && ($birthmonth == 06))
echo '<option selected="selected" value="06">June</option>';
else
echo '<option value="06">June</option>';
if (!empty($birthmonth) && ($birthmonth == 07))
echo '<option selected="selected" value="07">July</option>';
else
echo '<option value="07">July</option>';
if (!empty($birthmonth) && ($birthmonth == 08))
echo '<option selected="selected" value="08">August</option>';
else
echo '<option value="08">August</option>';
if (!empty($birthmonth) && ($birthmonth == 09))
echo '<option selected="selected" value="09">September</option>';
else
echo '<option value="09">September</option>';
if (!empty($birthmonth) && ($birthmonth == 10))
echo '<option selected="selected" value="10">October</option>';
else
echo '<option value="10">October</option>';
if (!empty($birthmonth) && ($birthmonth == 11))
echo '<option selected="selected" value="11">November</option>';
else
echo '<option value="11">November</option>';
if (!empty($birthmonth) && ($birthmonth == 12))
echo '<option selected="selected" value="12">December</option>';
else
echo '<option value="12">December</option>';
?>
</select><br />
<input type="submit" class="submitbtn" name="savebtn" id="savebtn" value="Save" />
你真的应该看看三元运营商:http://php.net/manual/en/language.operators.comparison.php –
是的,你是对的。现在问题已解决,我会用三元运算符重新编码。谢谢。 – user2646006
– user2646006