Yii2中的Ajax内部服务器错误

时间:2016-08-26 05:33:50

标签: json ajax yii2

查看urlCreate代码

$ajaxSaveTestGrid = Yii::$app->urlManager->createUrl('testgrid/ajaxsave');

这是我的视图Ajax代码

function saveRow(id, index) {    
    if(id == 'tbl_testGrid') {                
        save(id, index);
    }
 }

function save(id, index) {
    var testGrid_name = $('#testGrid_name' + index).val();
    var testGrid_qty = $('#testGrid_qty' + index).val();
    var testGrid_price = $('#testGrid_price' + index).val();


    var url = '$ajaxSaveTestGrid';

       // alert(testGrid_name+testGrid_qty+testGrid_price);

    $.ajax({
        type: 'GET',
        url: url,
        data: {
                testGrid_name:testGrid_name, 
                testGrid_qty:testGrid_qty,
                testGrid_price:testGrid_price
              },

        contentType: 'application/json; charset=utf-8', 
        dataType: 'json',

        success: function (response) { 
            if(response == 'error') {
                alert('Fail to save! Please try again'); 
            } else {   

                $('#testGrid_name' + index).attr(\"disabled\",true);             
                $('#testGrid_qty' + index).attr(\"disabled\",true); 
                $('#testGrid_price' + index).attr(\"disabled\", true); 
                $('#testGrid_save_button' + index).attr(\"class\", \"hidden\"); 
                $('#testGrid_delete_button' + index).attr(\"class\", \"hidden\"); 
                $('#testGrid_edit_button' + index).attr(\"class\", \"show\");  
                $('#hid_testGrid_id' + index).val(response[0].testgrid.id);
                $('html,body').animate({scrollTop: $('#btn_testGrid').offset().top});
            }
        }

   });
}

这是我的控制器

public function actionAjaxsave() {
    $result = array();
    $testGrid_name = $_GET['testGrid_name'];
    $testGrid_qty = $_GET['testGrid_qty'];
    $testGrid_price = $_GET['testGrid_price'];

    $model = new Testgrid();

    $model->name = $testGrid_name;
    $model->price = $testGrid_price;
    $model->qty = $testGrid_qty;


    if ($model->save()) {
        array_push($result, ['testgrid' => $model]);
        $result = Json::encode($result);
        echo $result;
    } else {
        echo 'error';
    }
}
  

发生内部服务器错误

我想将json数据保存到模型中。

1 个答案:

答案 0 :(得分:1)

内部服务器错误表示您的代码存在致命错误,并且错误显示已关闭。如果要查看错误本身,则必须启用错误显示。

请查看以下问题及其答案:How do I get PHP errors to display?

看到错误后,您可以修复它。

PS:

$testGrid_name = $_GET['testGrid_name'];

这不是推荐的访问GET变量的方法。请改用Yii::$app->request->get('testGrid_name')