如何访问Controller中的序列化数据

时间:2017-02-21 06:18:06

标签: php ajax laravel

如何在Controller中获取序列化数据?

例如我有这个数据......

var str = $('#edit-form-data').serialize(); //string 

我把它传递给像这样的函数......

editDosage(urlEdit,str);

我的功能是这样的......

function editDosage(url,res)
{
    console.log(url);
    $.ajax({
        url: url,
        method: 'POST',
        data: res,
        success:function(data){},
        error: function(data){}
    });     
}

如何在Laravel中的Controller中获取序列化数据的输入值?

例如,我在edit-form-data中包含了' store_id'的名称。我想在控制器中访问它。我能做点什么吗?

$store_id = Input::get('store_id');
dd($store_id);

3 个答案:

答案 0 :(得分:0)

您也可以使用,

$(document).ready(function() { 
    $('#edit-form-data').ajaxForm(); 
}); 

检查出来:http://malsup.com/jquery/form/

或者检查一下:

 $(document).ready( function(){

        $(document).on('click','#submitButton', function(){
            var _this = this;


            var request = $.ajax({
                url: url,
                type: "POST",
                data: jQuery("#form").serialize(),
                dataType: "json"
            });
            request.done(function( msg ) {

            });
            request.fail(function( jqXHR, textStatus ){

            });
        });
    });

在php中

 try {
     // input code
if($_REQUEST){
                    echo json_encode("success");

                } else {
                    echo json_encode("checkinput");
                }

            }catch (Exception $e){
                echo $e->getMessage();
                echo json_encode("error");
            }

答案 1 :(得分:0)

您可以使用几种不同的方式来获取输入。 来自请求

如果你的函数有一个Request参数,你可以从中获取输入。

public function methodA(Request $request) {
    $data = $request->all();
}

You can view the documentation on Requests here

输入外观

与请求类似,您可以使用输入外观来获取输入的数据。

public function methodB() {
    $data = Input::all();
}

You can view the API docs for the Input Facade here.

答案 2 :(得分:0)

jQuery代码

$.post('/ajax', {'_token': $token,data: $this.serialize()}, function(resp) {

    /*optional stuff to do after success */
});

控制器功能##

public function CreateBill()
{
    parse_str($_POST['data'], $data);

    return $data;
}