我一直在为此工作很长一段时间,我无法理解我做错了什么(yii初学者,所以请向我展示一些耐心)。Yii Cgridview更新功能不起作用
我有这样的代码在我看来代码
echo CHtml::dropDownList('symptomCategory',
'', // selected item from the $data
$this->getSymptomCategories(),
array(
'id'=>'categorySelectDropDown',
'prompt'=>"Select Symptom Category",
));
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'symptoms-grid',
'selectableRows'=>1, //ability to select one symptom at a time
'dataProvider'=>$model2->search(),
//'htmlOptions'=>array('id'=>'symptomsSelectGrid'),
'columns'=>array(
'symptomCode',
'title',
'inclusions',
'exclusions',
'symptomCategory',
),
));
我的js函数是这样的:
$('#categorySelectDropDown').change(function()
{
var symptomCategory = $('#categorySelectDropDown').val();
$('#symptoms-grid').yiiGridView('update',
{
data: symptomCategory.serialize()
});
return false;
});
我用$(本).serialize()也试过。无论如何。
根据我在网上找到的例子,它应该可以工作,但是不会,它不会更新cgridview。 $ this-> getSymptomCategories()返回一个数组的数组('A'=>'A','B'=>'B'等等等等)
顺便说一句我正在创建一个model2 = new症状;在由不同模型的控制器呈现的视图中,因为我想使用gridview中的选择来填充另一个模型的表单。任何帮助,文档(没有发现任何有用的在线),建议等将非常感激。感谢您oyur时间
我发现了这个问题。 gridview的ajax更新网址是朝着控制器呈现它(在这种情况下是sympomtshistorycontroller,因为正如我所说我想使用生成的网格视图,以便用户可以使用它来选择搜索症状),但gridview是症状模型。所以我所做的是我在渲染的局部视图内创建了一个新的sympptoms模型($ model2 = new Symptoms;),这打破了MCV架构......问题是我不知道如何解决它,因为我确实需要在属于另一个控制器的视图内渲染症状的gridview ...希望有人可以提供帮助。 –