我目前正在为我的应用程序(公司时区)设置更新公司详细信息页面,我已经构建并输出了一个时区/区域设置列表,其中包含了PHP的内置值以及所有这些内容输出很好。
我的问题是,我不能为我的生活,弄清楚如何设置选择'使用foreach将数组显示到select ...
时的值模型
//Timezone listing generated from PHP locales
function tz_list()
{
$zones_array = array();
$timestamp = time();
foreach(timezone_identifiers_list() as $key => $zone) {
date_default_timezone_set($zone);
$zones_array[$key]['zone'] = $zone;
$zones_array[$key]['diff_from_GMT'] = 'UTC/GMT ' . date('P', $timestamp);
}
return $zones_array;
}
控制器
//set locale display
$data['userOrglocale'] = $this->session->userdata('locale');
//load locale list from model
$data['tz_list'] = $this->account_model->tz_list();
查看
<div class="form-group">
<label class="col-lg-3 control-label">Time Zone:</label>
<div class="col-lg-8">
<div class="ui-select">
<select id="user_time_zone" class="form-control">
<?php
foreach($tz_list as $key => $value)
{
if ($userOrglocale == $tz_list['zone'])
{
$selected = 'selected';
}
echo '<option value=' . $key['zone'] . $selected . '>' . $value['zone'] . ' (' . $value['diff_from_GMT'] . ')</option>';
}
?>
</select>
</div>
</div>
</div>
在没有Javascript / AJAX的情况下执行此操作的能力会很好(因为我不太了解/很多/根本没有)但我知道我只能用HTML / PHP做很多事情......
答案 0 :(得分:0)
报价发布。 你应该改变这个
echo '<option value=' . $key['zone'] . $selected . '>' . $value['zone'] . ' (' . $value['diff_from_GMT'] . ')</option>';
以强>
echo '<option value="' . $key['zone'] .'" selected="'. $selected . '"'>' . $value['zone'] . ' (' . $value['diff_from_GMT'] . ')</option>';
更新1
模型
//Timezone listing generated from PHP locales
function tz_list()
{
$zones_array = array();
$timestamp = time();
foreach(timezone_identifiers_list() as $key => $zone) {
date_default_timezone_set($zone);
$zones_array[$zone] = 'UTC/GMT ' . date('P', $timestamp);
}
return $zones_array;
}
控制器
//set locale display
$data['userOrglocale'] = $this->session->userdata('locale');
//load locale list from model
$data['tz_list'] = $this->account_model->tz_list();
查看
<div class="form-group">
<label class="col-lg-3 control-label">Time Zone:</label>
<div class="col-lg-8">
<div class="ui-select">
<?php
echo form_dropdown(array('id' => 'user_time_zone'), $tz_list, $userOrglocale);
?>
</div>
</div>
</div>
答案 1 :(得分:0)
不是最优雅的解决方案,但在我需要的时候工作并保存数据: 只有更改位于视图
内<?php
foreach($tz_list as $key => $value)
{
if ($userOrglocale == $value['zone'])
{
$selected = 'selected';
}
else
{
$selected = '';
}
echo '<option value="' . $value['zone'] . '"' . $selected . '>' . $value['zone'] . ' (' . $value['diff_from_GMT'] . ')</option>';
}
?>