我创建了pogoda数据库,城市表和列city和cityid。我正在使用php创建动态列表,然后将所选值提交到更多代码中。
这就是我将defult开始位置添加到下拉列表中的方式(如果是html中的语句)。
选择值并单击提交按钮后,一切工作正常的exepct下拉列表 - 它始终处于相同的位置(defult),我不知道如何。这很奇怪,因为其他依赖于提交按钮的东西效果很好。
我的代码吼叫 - db.inc.php:
<?php
define('DB_NAME','pogoda');
define('DB_USER','root');
define('DB_PASS','');
define('DB_HOST','localhost');
?>
func.inc.php
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的一部分
<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(数字显示选择的价值)。选择不同的值并单击“提交”后,如下所示,表中的所有数据都在变化,测试编号正在变化,但列表中的值仍然相同after submit
答案 0 :(得分:0)
您需要在创建选项列表时检查选择了哪个城市。 或多或少是这样的:
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>