ajax无法通过帖子YII2传递数据

时间:2015-11-03 05:11:23

标签: jquery ajax yii2

我在视图中有一个普通的表格。我没有使用活动表单,因为在某些情况下我使用了jquery子窗口,并且活动表单在appAsset中存在冲突。

<form id="technician-create-form" method="post">
    <input type="hidden" name="csrf" id="csrf" value="<?=Yii::$app->request->getCsrfToken()?>" />                                           
    <div class="col-md-6">
        <div class="form-horizontal">
            <div class="form-group">
                <label class="col-sm-4 control-label">Technician No:</label>
                <div class="col-sm-8">
                    <input type="text" name="technician_no" id="technician_no"  class="form-control" placeholder="">
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-4 control-label">Code:</label>
                <div class="col-sm-8">
                    <input class="form-control" name="tech_code" id="tech_code">
                </div>
            </div>
            <div class="form-group">
                <label class="col-sm-4 control-label">Name:</label>
                <div class="col-sm-8">
                    <input type="text" name="tech_name" id="tech_name" class="form-control" placeholder="">
                </div>
            </div>
        </div>
    </div>

    <div class="col-sm-offset-4 col-sm-9">
        <input type="button" value="Save" id="addTechnicians" class="saveNew" name="addNewTechnicians">
        <button type="reset" class="btn btn-default">Reset</button>
    </div>

</form>

jquery的

$(".saveNew").on("click",function(){
    //console.log("ok");
    var myBtn = this.name;
    switch (myBtn){
        case "addNewTechnicians":
            console.log(myBtn);
            var _csrf = $("#csrf").val();
            var technicianNo = $("#technician_no").val(),
                techCode = $("#tech_code").val(),
                techName = $("#tech_name").val(),

            $.ajax({
                url: 'technicians/create',
                type: 'post',
                data: 
                    {
                        _csrf : _csrf,
                        //_csrf : csrfToken,
                        technicianNo : technicianNo,
                        techCode : techCode,
                        techName : techName,

                    },
                //dataType: json,
                success: function(result){
                    var res = JSON.parse(result);
                    notificationMessage(res.technicians.notification,res.technicians.template);
                    if(res.technicians.template == "success"){
                        // $("#technician_no").val("");
                        // $("#tech_code").val("");
                    }

                },
                error: function(result){
                    console.log(result);
                    alert("error in ajax form submission");
                    },
            });
     break;
 });

技术人员控制员:

public function actionCreate()
{
    var_dump($_POST);
}

在控制器中,我转储$ _POST以检查ajax是否在控制器上成功传递但没有任何反应。这与csrf有关吗?因为这是我前一段时间的问题,但是现在,这个。

1 个答案:

答案 0 :(得分:0)

你的问题是:

           type: 'get',

将其设为

           type: 'post',