1

以下に示すように、2つのテーブルがあります。

tbl_test:

id | testname | description

tbl_testitems:

id | itemname | description | testid

テスト用のラジオリストを選択すると、選択したテスト項目リストのみが表示されるように、両方のラジオリストを使用する必要があります。これが私のコードです:

<?=
$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、選択したテスト内の項目が表示されません。私を助けてください!前もって感謝します!!!

4

1 に答える 1