0

这是我的代码ajaxsubmitbutton

<?php echo CHtml::ajaxLink('Assign',CController::createUrl('StudentsGuardian/Create',array('$guardian_id'=>$id,'$student_id'=>'js:studentid'),array('dataType'=>'html', 'complete'=>'js:alert("hurray")'))); ?>

但是这个提交按钮不起作用。我需要从此 ajax 按钮调用控制器的操作,但无法做到这一点。这是我的控制器创建动作

public function actionCreate($guardian_id, $student_id)
    {

             CVarDumper::Dump($guardian_id,100,true);
             CVarDumper::Dump($student_id,100,true);
            die();
        $model=new StudentsGuardian;

                $model->guardian_id = $guardian_id;
                $model->student_id = $student_id;
        // Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

    }

我已经让 VarDumper 来查看这些值,但是当按下它时,它永远不会显示 bcz Ajaxbutton 只是呈现它所属的视图。它什么也不做。
我是 yii 的新手,所以请帮助我并指出正确的方法。
更新:
这是我设置了 srudentId 的 javascript 代码

<script type="text/javascript">

       var studentid;
        $("#dropdownId").change(function(){
          studentid= $('#dropdownId :selected').val();

        });

    </script>

更改下拉列表时,将设置此学生 ID。

4

2 回答 2

0

这永远不会起作用,因为没有设置学生ID,并且不应该以这种方式使用,页面加载时它总是空的,所以总是空的

还有 ajaxSubmitButton 通过我认为 GET 方法发送关联的表单,你需要从 GET 获取你的参数

于 2013-10-29T06:18:12.627 回答
0

将 DataType 方法更改为 POST 类型

<?php echo CHtml::ajaxLink('Assign',
    CController::createUrl('StudentsGuardian/Create'),
    array('type' => 'POST',
        'data' => array('guardian_id' => $id, 'student_id'=> 'js:studentid'),
        'complete' => 'js:alert("hurray")'
    )
); ?>

这是什么'js:studentid'?

控制器:

public function actionCreate($guardian_id, $student_id)
{
    $guardian_id = isset($_POST['guardian_id'])? $_POST['guardian_id'] : $guardian_id;
    $student_id = isset($_POST['student_id'])? $_POST['student_id'] : $student_id;

    CVarDumper::Dump($guardian_id,100,true);
    CVarDumper::Dump($student_id,100,true);
    die();
    $model=new StudentsGuardian;

    $model->guardian_id = $guardian_id;
    $model->student_id = $student_id;
    // Uncomment the following line if AJAX validation is needed
    // $this->performAjaxValidation($model);

}
于 2013-10-29T06:53:37.017 回答