来自另一个文件的 php 下拉菜单


Php dropdown menu from another file

我正在尝试创建一个州资本猜谜游戏,其中状态将随机生成,然后从包含所有用户首都的下拉列表中猜测资本。 无论如何,他希望我们有一个带有数组的单独文件。该文件称为city_info.php,数组如下所示

$state_capitals = array(
    'Alabama' => 'Montgomery',

我在让下拉列表中填充所有大写字母时遇到问题。

<?php
require_once "include/session.php";
if (!isset($session->valid)) {
    header("location: login.php");
    exit();
}
require_once "include/city_info.php";
/* DO NOT MODIFY THE ABOVE LINES !!!!! */
$states   = array_keys($state_capitals);
$capitals = array_values($state_capitals);
$cities   = array_merge($capitals, $other_cities);
sort($cities);
$params = (object) $_REQUEST;
print_r($params);
if (isset($params->guess)) {
    $state_capitals = $params->capitals;
    $answer         = $params->answer;
    $cities         = $params->city;
}
?>
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
<meta http-equiv="Cache-Control" 
  content="no-cache, max-age=0, no-store, must-revalidate" />
<title>State Capital Guess Game</title>
<style type="text/css">
body {
    padding: 10px 20px;
}
#logout {
    position: absolute;
    top: 40px;
    right: 40px;
}
div {
    width: 320px;
    padding: 10px;
    border: 3px solid black;
    border-radius: 10px;
    color: black;
    text-align:center;
    background-color:#3399ff;
    display:inline-block
}
/* 
More style rules
*/
</style>
<script type="text/javascript">window.onunload = function(){}</script>
</head>
<body>
<a id="logout" href="logout.php">Log out</a>
<h2>State Capital Guess Game</h2>
<form action="program.php" method="get">
<button type="submit">Start Over</button>
</form>
<!--- computational form -->
<div>
<p>What is the Capital of PA</p>

<select name="cities">
<?php
foreach ($city as $value):
?>
<option <?php
    if ($value == $params->city)
        echo "selected";
?>
><?php
    echo $value;
?></option>
<?php
endforeach;
?>
</select>
<input type="submit" name="choose" value="Choose" />
</form>
</div>
<?php
echo $state_capitals;
?>
</body>
</html>

你表达问题的方式,这听起来像是家庭作业。SO上的许多人很乐意帮助完成家庭作业,但是,有些人则不然;因此,出于礼貌,在询问有关家庭作业的问题时,请遵循以下准则: https://meta.stackexchange.com/questions/10811/how-do-i-ask-and-answer-homework-questions。您可能已经知道这一点,但想涵盖基础知识以防万一。

关于你的问题。我会稍微清理一下,这样遵循 HTML/PHP 就不难了。如果您替换当前代码,这应该有效:

<select name="cities">
<?php
    $options = "";
    foreach ($cities as $value){
        $options .= '<option value="' . $value . '"';
        if ($value == $params->city)
            $options .= ' selected';
        $options .= '>' . $value . '</option>';
    }
    echo $options;
?>
</select>

这样你只需要在HTML/PHP之间切换一次。希望对您有所帮助!