ajax不会从laravel中的控制器获取数据

时间:2014-10-24 07:52:51

标签: php ajax laravel-4

当我从dropdownbox中选择值时,我想执行多个操作,因为我在larvel中使用ajax。我的问题是,当我选择下拉列表值时,它会通过ajax传递,从ajax它调用控制器基于我想要的从数据库中获取所需的字段,但是ajax不会返回任何成功结果。这是我的代码。

查看

 {{ Form::select('asset_type_id', $assettype_list,
Input::old('asset_type_id',  $assetdetail->asset_type_id), array('class'=>'select2','id'=>'asset_type_id', 'style'=>'width:350px')) }}

AJAX

$(document).ready(function() { 
    $("#asset_type_id").change(function() {debugger;
        // alert($('#asset_type_id option:selected').val());
        var data=$('#asset_type_id option:selected').val()
        $.ajax({
            type: 'POST',
            url: '/Controllers/Admin/AssetdetailsController',
            data: data,
            cache: false,
            success: function(data)
            {
                check(data);
            },
            error: function(xhr, textStatus, thrownError) {
                alert('Something went to wrong.Please Try again later...');
            }
        });
    });
});

控制器

public function postPositions($data) 

    {
        if (Request::ajax()) 
        {
            $positions = DB::table('asset_types')->select('is_nesd')->where('id', '=', $data)->get();

            return  $positions;
                 }
    }

路线

 Route::post('Controllers/Admin', [usesu'Controllers\Admin\AssetdetailsController@postPositions');

3 个答案:

答案 0 :(得分:1)

ajax 中,尝试更改网址:

$(document).ready(function() { 
    $("#asset_type_id").change(function() {debugger;
        // alert($('#asset_type_id option:selected').val());
        var data=$('#asset_type_id option:selected').val()
        $.ajax({
            type: 'POST',
            url: '{{ URL::route('post_form') }}',
            data: data,
            cache: false,
            success: function(data)
            {
                check(data);
            },
            error: function(xhr, textStatus, thrownError) {
                alert('Something went to wrong.Please Try again later...');
            }
        });
    });
});

路线(请参阅Laravel 4 Docs

 Route::post('Controllers/Admin', array('uses' => 'Controllers\Admin\AssetdetailsController@postPositions', 'as'=>'post_form'));

<强>更新

要使用控制器解决错误,请尝试以下操作:

public function postPositions()
{
    if (Request::ajax())
    {
        $data = Input::get('form_data');
        $positions = DB::table('asset_types')->select('is_nesd')->where('id', '=', $data)->get();

        return  $positions;
    }
}

JS代码:

$(document).ready(function() { 
    $("#asset_type_id").change(function() {debugger;
        // alert($('#asset_type_id option:selected').val());
        var f_data=$('#asset_type_id option:selected').val(); // changed

        $.ajax({
            type: 'POST',
            url: '{{ URL::route('post_form') }}',
            data: { form_data: f_data }, // changed
            cache: false,
            success: function(data)
            {
                check(data);
            },
            error: function(xhr, textStatus, thrownError) {
                alert('Something went to wrong.Please Try again later...');
            }
        });
    });
});

答案 1 :(得分:0)

您可能需要将网址更改为网址:&#39; / Controllers / Admin&#39;。

因为您将Route作为控制器/管理员。

答案 2 :(得分:0)

查看:

            {{ Form::open(array('url' => 'crud', 'method' => 'get', 'id' => 'myform', 'name' => 'myform')) }}
                     {{ Form::select('application',$download_options, Input::get('application'),$options = array('id' => 'application', 'class' => 'application'))  }}
                        {{ Form::label('date', 'date', array('id' => 'date_label')); }}
                        {{ Form::select('date', $options = array('id' => 'date', 'class' => 'date')) }}
                        {{ Form::submit('Display', array('class' => 'btn btn-small btn-info', 'id' => 'submit')) }}
            {{ Form::close() }}




          <script>

            $(document).ready(function($) { 
            $('#application').change(function(e){ // e=event
            var application = $('#application option:selected').val();
            $.getJSON('/getdata/'+application, function(data){
            $('select#date').html('$'+data);

            });

    });
        });

    </script>

路线:

                 Route::get('getdata/{application}', function($application){
                $selectboxtwo =  DB::table('downloads')
               ->where('application', '=',$application)
                ->groupBy('date')
                ->lists('date');
                 return $selectboxtwo;