我是 yii 新手(一周前开始),我想使用yii Bootstrap Thumbnail 网格来显示一些国家/地区的图像,然后我想在每个国家/地区钻取并显示城市等,而无需重新加载整个屏幕,就在右边。
创建视图的代码
echo $this->renderPartial('_form', $this);
除此之外,下面的这个视图用于显示图像。它有两个div。一个用于选择与国家/城市相关的图像,另一个显示用户通过单击应该在图片附近的按钮根据城市做出的选择,但仅当用户钻入城市时。
第一个疑问->我应该渲染局部吗?我只想刷新屏幕的右侧,即有图像的一侧。考虑到我在前面的代码中渲染了一个部分,而下面的其他部分。这甚至可能吗?
$this->renderPartial('_formCountry', $this);
该视图负责加载小部件
$dataProvider = new CActiveDataProvider('Country');
$this->widget('bootstrap.widgets.TbThumbnails', array(
'id' => 'countryThumbId',
'dataProvider' => $dataProvider,
'template' => "{items}\n{pager}",
'itemView' => '_countryThumb',
));
下面的视图用国家的图像填充它,并通过 post 发送 Country 的 id。
第二个疑问->我如何向下钻取单击图像,而不是使用按钮来执行此操作???
echo $this->createUrl('city/view', array('id' => $data['id']));
$this->widget('bootstrap.widgets.TbButton', array(
'label' => 'cidades',
'buttonType' => 'ajaxButton',
'type' => 'primary', // null, 'primary', 'info', 'success', 'warning', 'danger' or 'inverse'
'size' => 'mini', // null, 'large', 'small' or 'mini'
'url' => Yii::app()->createUrl("tripDetail/showCities"),
'ajaxOptions' =>
array('data' =>
array(
'id' => $data['id'],
),
'type' => 'POST',
)
)
);
此操作在按钮单击时触发,并根据用户选择的国家/地区获取新的 dataProvider
第三个疑问->可以嵌套多少个renderPartials????
public function actionShowCities()
{
$cityId = $_POST['id'];
$dataProvider = $this->getCities($cityId);
$this->renderPartial('_formCity', array('dProvider'=>$dataProvider));
}
*上面的动作启动了这个视图 _formCity,它又调用了 _cityThumb*
$this->widget('bootstrap.widgets.TbThumbnails', array(
'id' => 'countryThumbId',
'dataProvider' => $dProvider,
'template' => "{items}\n{pager}",
'itemView' => '_cityThumb',
));
* _cityThumb*
第四个疑问->城市是唯一呈现的屏幕,当我单击按钮向我显示城市时,什么也没发生,为什么????
echo $this->createUrl('place/view', array('id' => $data['id']));
很抱歉这么长的帖子和这么多的疑问,但这是我第一次使用 php 框架......而且 yii 并不那么容易,至少一开始是这样。:-[