<select>
<?php foreach($result as $city) { ?>
<option value="<?php echo $city->city_name; ?>" <?php if( strtolower($this->session->city) == strtolower($city->city_name) ) { echo "selected"; } ?>
> <?php echo $city->city_name; ?> </option>
<?php } ?>
</select>
您好我正试图在会话的帮助下自动选择下拉框但是我无法选择请一些人帮我解释如何自动选择下拉框。
答案 0 :(得分:0)
首先。你应该总是提供整个代码,例如。以PHPFiddle格式。
其次,你不应该混用HTML和PHP。
此外,您的问题无法从您的问题中解读,因为可能有多种原因。就像城市名称可以是大写或在会话变量中大写。
您的会话变量可能未在类构造函数中使用您的会话进行初始化。
你甚至可能根本没有课程,所以对$ this的引用将会过时。
但除此之外,这里有一段可能对您有用的代码:
<?php
class MockSession {
function __construct() {
}
}
class Foo {
function __construct() {
$this->session = new MockSession();
$this->session->city = "Helsinki";
}
function printSelect() {
$result = array("London","New York","Helsinki");
echo '<select>';
foreach ($result as $city) {
$sel = '';
echo $city." ".$this->session->city;
if (strtolower($city)==strtolower($this->session->city)) {
$sel = ' selected="selected" ';
}
echo '<option value="'.$city.'" '.$sel.'>'.$city.'</option>';
}
echo '</select>';
}
}
$foo = new Foo();
$foo->printSelect();
?>
答案 1 :(得分:0)
如果您在页面上获得了会话的价值,则必须将代码修改为selected="selected"
。请参阅更新的代码:
<select>
<?php
foreach ($result as $city) {
?>
<option
value="<?php echo $city->city_name; ?>"
<?php if (strtolower($this->session->city) == strtolower($city->city_name)) {
echo 'selected="selected"';
}
?>>
<?php echo $city->city_name; ?>
</option>
<?php
}
?>
</select>
但是你必须先确认你有$this->session->city
的价值。