使用laravel控制器从$ .ajax调用接收数据

Yun*_*ium 5 php ajax jquery laravel-4

我试图从中选择选项<select>,将其传递给show()控制器中的方法,使用它从数据库中检索数据,然后将其作为json返回到成功方法中$.ajax.所有这一切都在发生jquery.ajax.

我的问题

如何从$.ajax请求传递数据来获取/接收数据?

这是我正在使用的代码:

routes.php文件

Route::post('rate/units',array('as'=>'unitRoute','uses'=>'RateController@show'));
Run Code Online (Sandbox Code Playgroud)

RateController.php

public function show()
{
    $row[] = $_POST['deg'];

    return json_encode($row);
}
Run Code Online (Sandbox Code Playgroud)

查看

<select class="form-control choosedegree" name="sem" id="semester">
    <option value="" selected="selected" disabled>Select Semester</option>
    <option value="1">Year 1, Semester 1</option>
    <option value="2">Year 1, Semester 2</option>
    <option value="3">Year 2, Semester 1</option>
    <option value="4">Year 2, Semester 2</option>
    <option value="5">Year 3, Semester 1</option>
    <option value="6">Year 3, Semester 2</option>
    <option value="7">Year 4, Semester 1</option>
    <option value="8">Year 4, Semester 2</option>
</select>

<script>
$(document).ready(function() {
    $('select#semester').on('change', function() {
        var optionSelected = $(this).find("option:selected");
        semesterSelected  = optionSelected.val();
        console.log(semesterSelected);

        $.ajax({
            type: "POST",
            cache: false,
            url : "rate/units",
            data: { sem : semesterSelected },
            success: function(data) {
                var obj = $.parseJSON(data);
                var i = 0;
                console.log(data.iyo);

                $.each(obj, function() {
                    console.log(this[0]);
                    console.log(this[1]);
                    console.log(this[2]);
                    console.log(this[3]);
                    console.log(this[4]);

                    i++;
                });
            }
        })
        .done(function(data) {
            alert('done');
        })
        .fail(function(jqXHR, ajaxOptions, thrownError) {
            alert('No response from server');
        });
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

Ant*_*iro 11

您可以使用输入检索发布数据:

public function show()
{
    $semester = Input::get('sem');

    return json_encode($semester);
}
Run Code Online (Sandbox Code Playgroud)

要调试它,您可以:

public function show()
{
    Log::info(Input::all());

    $semester = Input::get('sem');

    return json_encode($semester);
}
Run Code Online (Sandbox Code Playgroud)

然后在控制台执行

php artisan tail
Run Code Online (Sandbox Code Playgroud)

  • "laravel 5.1"中没有输入. (3认同)