可以在一个 table 中进行依赖下拉吗?
Possible for dependent drop down in one table?
我是 yii 的新手,我正在尝试使用依赖下拉列表作为教程
我的想法是通过一个 table:
创建一个依赖下拉列表
IntakeDetails [id, course_name, intake_no]
里面table可以填不同的intakes,同一个course name。
然后我使用另一种带有下拉列表(课程名称)和(入学)的表格。 (摄入量)下拉菜单将显示从下拉菜单(课程名称)中选择的值。
我的表格:
<?= $form->field($model, 'course_name')->dropDownList(
ArrayHelper::map(IntakeDetails::find()->all(), 'course_name', 'course_name'),
[
'prompt'=>'Select course',
'onchange' => '
$.post(
"' . Url::toRoute('getoperations') . '",
{id: $(this).val()},
function(res){
$("#requester").html(res);
}
);
',
]); ?>
<?= $form->field($model,'intake_no')->dropDownList(
[],
[
'prompt' => 'Select intake',
'id' => 'requester'
]); ?>
和控制器
public function actiongetoperations()
{
if (Yii::$app->request->post('course_name')) {
$operationPosts = IntakeDetails::find()
->select('intake_no')
->where(['course_name' => $model->course_name])
->count();
if ($operationPosts > 0) {
$operations = IntakeDetails::find()
->select('intake_no')
->where(['course_name' => $model->course_name])
->all();
foreach ($operations as $operation)
echo "<option value='" . $operation->intake_no. "'>" . $operation->intake_no . "</option>";
} else
echo "<option>-</option>";
}
即使我已将值插入数据库 table,表单也没有提供所选下拉列表中的任何值。那么,可以这样使用它吗?如果是,请告诉我。我愿意学习。谢谢
你能展示一下你的控制器的行为动作吗?
它是否涉及 actiongetoperations ?
行动的反应是什么?
应该是
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => [
'get-operations']
......
and actionGetOperations(){}
我是 yii 的新手,我正在尝试使用依赖下拉列表作为教程
我的想法是通过一个 table:
创建一个依赖下拉列表IntakeDetails [id, course_name, intake_no]
里面table可以填不同的intakes,同一个course name。 然后我使用另一种带有下拉列表(课程名称)和(入学)的表格。 (摄入量)下拉菜单将显示从下拉菜单(课程名称)中选择的值。
我的表格:
<?= $form->field($model, 'course_name')->dropDownList(
ArrayHelper::map(IntakeDetails::find()->all(), 'course_name', 'course_name'),
[
'prompt'=>'Select course',
'onchange' => '
$.post(
"' . Url::toRoute('getoperations') . '",
{id: $(this).val()},
function(res){
$("#requester").html(res);
}
);
',
]); ?>
<?= $form->field($model,'intake_no')->dropDownList(
[],
[
'prompt' => 'Select intake',
'id' => 'requester'
]); ?>
和控制器
public function actiongetoperations()
{
if (Yii::$app->request->post('course_name')) {
$operationPosts = IntakeDetails::find()
->select('intake_no')
->where(['course_name' => $model->course_name])
->count();
if ($operationPosts > 0) {
$operations = IntakeDetails::find()
->select('intake_no')
->where(['course_name' => $model->course_name])
->all();
foreach ($operations as $operation)
echo "<option value='" . $operation->intake_no. "'>" . $operation->intake_no . "</option>";
} else
echo "<option>-</option>";
}
即使我已将值插入数据库 table,表单也没有提供所选下拉列表中的任何值。那么,可以这样使用它吗?如果是,请告诉我。我愿意学习。谢谢
你能展示一下你的控制器的行为动作吗? 它是否涉及 actiongetoperations ? 行动的反应是什么? 应该是
public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => [
'get-operations']
......
and actionGetOperations(){}