0

我有一个从我的模型加载的建筑物列表。这些建筑物在我看来是循环显示的:

控制器

public function index() {
 $data['buildings'] = $this->Base_Model->getUserBuildings();
 $this->load->view('game', $data); }

看法

<?php foreach($buildings as $b): ?>
    <div class="building">[...]</div>
<?php endforeach; ?> 

每个构建都有一些可能的“操作”,例如“信息”、“价格”、“颜色”。默认状态显示“信息”。

我希望能够为特定建筑物加载特定动作。

例如,我有一家工厂和一家药店,默认情况下都显示“信息”选项卡。如果我点击药店的“价格”标签,如何显示工厂的“信息”标签和药店的“价格”标签?

我的网址如下所示:

默认一个

场地/建筑物

显示药店的价格

地点/建筑物/价格/药店

也许我应该寻找一个局部视图解决方案,但我真的需要一个建议或解决方案;)

非常感谢你(我也为我的英语不好道歉)

4

2 回答 2

0

然后是这样的:

$this->Base_Model->getUserBuildingFromWebname($webname);

然后在您的 Buildings 控制器中,您可以添加以下内容:

public function index( $webname = null )
{
  if( !is_null($webname) )
    $buildingId = $this->Base_Model->getUserBuildingFromWebname($webname);
  else
    $buildingId = null;

  $data["showBuildingDetails"] = $buldingId;

  //the rest of your index() function
}

public function price ( $webname )
{
  return $this->index($webname);
}
于 2010-10-27T09:50:05.897 回答
0

如果不了解更多有关设置的信息,很难说,但您需要在 price() 函数中添加某种条件

信息/价格行为是从数据库中获得的吗?

如果是这样的话

<?php foreach($buildings as $b): ?>
    <div class="building">
    <?php if($this->uri->segment(3)==$b['building_name']) {
        echo 'Price';
    } else {
        echo 'Info';
    }
    ?>    
    </div>
<?php endforeach; ?> 

但如前所述,在不了解该系统的情况下,很难给出一个体面的答案。

于 2010-10-29T09:44:17.523 回答