我有两个表,如下所示。
tbl_tests:
id | testname | description
tbl_testitems:
id | itemname | description | testid
我需要为他们两个都使用一个单选列表,这样当我为测试选择单选列表时,只会显示所选中的 testitem 列表。这是我的代码:
<?=
$form->field($model, 'labtestid')->radioList(
ArrayHelper::map(Labratorytest::find()->orderBy('testName')->all(), 'testid', 'testName'), [
'onchange' => '$.post( "index.php?r=labratorytestitem/lists&id=' . '"+$(this).val(), function(data){
$( "select#suggesttest-labtestitemid" ).html( data );
});'
, 'return' => true], ['id' => 'test'])->label('');
?>
和
<?=
$form->field($model, 'labtestitemid')->radioList($allItemsArray, ['return' => true])->label('')
?>
testItemsController中的actionLists方法是
public function actionLists($id) {
$countItems = \app\models\Labratorytestitem::find()->where(['testid' => $id])->count();
$testItems = \app\models\Labratorytestitem::find()->where(['testid' => $id])->all();
$mymodel = new \app\models\Suggesttest();
if ($countItems > 0) {
foreach ($testItems as $item) {
echo '<input type="radio" name="' . $item->itemName . '" value="' . $item->itemid . '>';
}
} else {
echo ' ';
}
}
但是当我选择 时radiolist
,它没有显示所选测试中的项目。请帮我!提前致谢!!!