首页 > 解决方案 > 如何在控制器中获取 jquery 序列化数据并存储到数据库

问题描述

我正在使用 ajax 发送多个动态输入框数据,所以我不知道如何在控制器中检索数据并保存到数据库。

$(".btn_sb").click(function(){

                    var dt=$(".eq_form").serialize();
                    alert(dt);
                    $.ajax({
                        headers: {
                   'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                        },
                        url:'/add-ques',
                        type:'post',
                        data:{ques:dt},
                        success:function(data){

                            if(data.success){
                                //alert("done");
                                $(".scs_msg").fadeIn();
                                //$(".eq_form").trigger('reset');
                            }

                        },
                        error: function (data) {
                        console.log('Error:', data);
                         }


                    });

回复

 Array ( [ques] => _token=js1wz0cTOx7IX20qWuStea79BVgevypvHZReA47X&ques=q1&opta=a&optb=b&optc=c&optd=d&ques2=q2&opta2=a&optb2=b&optc2=c&optd2=d )

标签: jquerylaravel

解决方案


您发送的数据不必要地嵌套在另一个对象中。您当前发送的字符串格式可以由 PHP 使用本机parse_str函数解析,然后您可以使用foreach循环遍历结果数组中的每个键值对。

您也可以尝试使用 jQuery 的serializeArray()函数而不是serialize(),然后将该结果直接传递到数据中,如下所示:

var dt=$(".eq_form").serializeArray();

$.ajax({
    // ... 
    url:'/add-ques',
    type:'post',
    data: dt,
    // ...
});

推荐阅读