【问题标题】:Possible for dependent drop down in one table?可以在一张表中进行相关下拉吗?
【发布时间】:2020-06-30 07:18:17
【问题描述】:

我是 yii 新手,我正在尝试使用依赖下拉列表作为教程

我的想法是通过一个表创建一个依赖下拉列表:

IntakeDetails [id, course_name, intake_no]

表格里面可以填写不同的摄入量,同一个课程名称。 然后我使用另一种带有下拉菜单(课程名称)和(摄入量)的表格。 (摄入)下拉菜单将显示从下拉菜单(课程名称)中选择的值。

我的表格:

<?=  $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>";
              
      }
  

即使我将值插入到数据库表中,表单也没有从所选下拉列表中提供任何值。那么,可以这样使用吗?如果是,请告诉我。我愿意学习。谢谢。

【问题讨论】:

    标签: php yii2 dropdown


    【解决方案1】:

    你能展示你的控制器的行为动作吗? 它是否达到 actiongetoperations ? 行动的反应是什么? 应该是

       public function behaviors()
        {
            return [
                'access' => [
                    'class' => AccessControl::className(),
                    'rules' => [
                        [
                            'actions' => [
                                'get-operations']
                        ......
    
     and actionGetOperations(){}
    

    【讨论】:

    • 这些行为都是 Gii 代码生成器默认的。
    • 动作应该是驼峰式大小写,由属于动作'方法名'的动作actionMethodName准备
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2012-04-03
    • 2018-11-14
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多