首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php下拉列表保留一个位置

php下拉列表保留一个位置
EN

Stack Overflow用户
提问于 2017-02-14 04:35:07
回答 1查看 59关注 0票数 0

我已经创建了pogoda数据库,城市表和城市和城市I列。我正在使用php创建一个动态列表,然后将选择的值提交到进一步的代码中。

这就是我将默认开始位置添加到下拉列表中的方式(html中的if语句)。

选择值并单击提交按钮后,一切正常,除了下拉列表-它总是在相同的位置(默认),我不知道怎么做。这很奇怪,因为其他也依赖于提交按钮的东西工作得很好。

我的代码如下- db.inc.php:

代码语言:javascript
复制
 <?php
    define('DB_NAME','pogoda');
    define('DB_USER','root');
    define('DB_PASS','');
    define('DB_HOST','localhost');
?>

func.inc.php

代码语言:javascript
复制
require_once 'db.inc.php';

function connect(){
    mysql_connect(DB_HOST,DB_USER,DB_PASS) or die('Could not connect to server!' . mysql_error());
    mysql_select_db(DB_NAME);
}
function close(){
    mysql_close();
}
function query(){
    $myData = mysql_query("SELECT * FROM city");
    while($record = mysql_fetch_array($myData)){
        echo '<option value="' . $record['cityid'] . '">' . $record['city'] . '</option>';

    }
}

function get($name){
    return isset($_REQUEST[$name]) ? $_REQUEST[$name] : '';
}


?>

html的一部分

代码语言:javascript
复制
        <div class="title">
        Pogoda
        </div>
        <div class="main">
            <form>
            <select name="city">
                <?php query() ?>
            </select>
                <?php close() ?>
                <br>
                <input type="submit">
            </form>
            <?php
                $cityid = get('city');

                if($cityid == NULL){
                $cityid = 4927854; //start position
                }
                else{
                $cityid = get('city'); //this one after clicking submit
                }
                echo $cityid; // test
                date_default_timezone_set('Europe/Warsaw');
                use Cmfcmf\OpenWeatherMap;
                require __DIR__ . '/vendor/autoload.php';
                $lang = 'pl';
                $units = 'metric';
                $owm = new OpenWeatherMap("mycode");
                $forecast = $owm->getWeatherForecast( $cityid, $units, $lang, '', 3);
            ?>
</div>

start value(数字显示当前选择的值)。选择不同的值并单击submit后,如下所示,表中的所有数据都在更改,测试编号正在更改,但列表中的值仍然是相同的after submit

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-14 04:56:12

您需要在创建选项列表时检查选择了哪个城市。或多或少像这样:

代码语言:javascript
复制
function query($cityId){
    $myData = mysql_query("SELECT * FROM city");
    while($record = mysql_fetch_array($myData)){
        if($cityId == $record['cityid']){
            echo '<option selected value="' . $record['cityid'] . '">' . $record['city'] . '</option>';
        }else{
            echo '<option value="' . $record['cityid'] . '">' . $record['city'] . '</option>';
        }
    }
}


<select name="city">
    <?php query(get('cityid')) ?>
</select>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42213048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档