php - 如何将 jquery 数组传递给 laravel Controller

标签 php jquery arrays laravel

这是我的代码,以便您可以看到我正在尝试做什么

var cont = 1;
var form_data = {};
$('.preview-add-button').click(function(){ //Introduce los nuevos campo
    form_data["isexo"] = $('.payment-form #sexo option:selected').text();
    form_data["icolor"] = $('.payment-form input[name="color"]').val();
    form_data["iraza"] = $('.payment-form #raza option:selected').text();
    form_data["itipo"] = $('.payment-form #tipo option:selected').text();
    form_data["iprecio"] = $('.payment-form input[name="precio"]').val();
    form_data["ipeso"] = $('.payment-form input[name="peso"]').val();
    form_data["imonto"] = parseFloat($('.payment-form input[name="precio"]').val()*$('.payment-form input[name="peso"]').val()).toFixed(2);
    form_data["remove-row"] = '<span class="glyphicon glyphicon-remove"></span>';
    var row = $('<tr></tr>');
    $.each(form_data, function( type, value ) {
        $('<td class="input-'+type+'"><input type="hidden" class="form-control" name="data-'+type+'" value="'+value+'"></td>').html(value).appendTo(row);
        cont++;
    });
    $('.preview-table > tbody:last').append(row); 
    calc_total();
    $('#sexo').val('');
    $('#color').val('');
    $('#raza').val('');
    $('#tipo').val('');
    $('#precio').val('');
    $('#peso').val('');
}); 
console.log( form_data );
$.ajax({
    type: "POST",
    url: "/compras/create/store",
    data: form_data
    });  

如何将此数组:var form_data = {} 传递到我的 Controller ?除了 form_data["删除行"]

例如:pic

更新:尝试使用ajax,我不知道我的代码是否正常,

$.ajax({
  type: "POST",
  url: "compras/create/store",
  data: form_data
});

$.ajax({
      data: form_data
    });

我的 Controller ,其中 $data 用于返回数组,但是:

public function store()
    {
        $compra = new Compra;
        $compra->fecha = Input::get('fecha');
        $compra->num_factura = Input::get('num_factura');
        $compra->id_proveedor = Input::get('proveedor');
        $compra->nombre_vendedor = Input::get('nombre_vendedor');
        $compra->total = Input::get('total');
        $compra->descuento = Input::get('desc');
        $compra->itbms = Input::get('itbms');
        $compra->total_bruto = Input::get('total_bruto');
        $id_compra = $compra->id;
        $data = Input::except('remove-row');
        if($compra->save()){
            Session::flash('message','Guardado Correctamente');
            Session::flash('class','success');
        }else{
            Session::flash('message','Ha ocurrido un error');
            Session::flash('class','danger');
        }
        return $data;
    }

返回: {"_token":"tLPlnBix0vQxkjZkHaF9cdIFPvgq7O1U7pTXye8v","fecha":"2014-11-25","num_factura":"2131AJ","provedor":"6 ","nombre_vendor":"DelPotro","id_proveedor":"","ruc":"","telef":"","sexo":"","color":"","raza":"","tipo":"","precio":"","peso":"","total_bruto":"387.00","total":"387.00","desc":"","itbms": ""} 没有 form_data 数组

最佳答案

我在这里给出了执行类似操作的代码,在我的例子中,我将用户兴趣(游泳、唱歌、音乐等)保存到名为 Interests(id,interest_name) 的数据库表中。

首先让我们看一下 javascript:

public function saveInterests()
{
        //I declare the array here
        var allVals = [];
  
  
        //I get my values from checkboxes checked in a div with id interests  
  
        $('#interests :checked').each(function(){
       
           allVals.push($(this).val());

        });

  
        //Now I am making an post ajax call
  
        $.post("http://b2.com/saveInterests", {interests: allVals},function(data)
        {
            //this is ajax callback function
          
            if(data=='Saved')
               {
                 
                   alert('Saved With Success');
                 
               }
             else
              {
                   alert('Sorry couldnt save data in Database');
                }
         });

}

//处理本次Ajax请求的路由 路线::post('saveInterests',array('as'=>'interests.Profile','uses'=>'ProfileController@saveInterests'));

//ProfileController 中用于处理路由的 Laravel 代码

 public function saveInterests()
{
        $iarray=Input::get('interests');  //getting my array from ajax call to Laravel
        foreach($iarray as $userInterest)
        {
            $inter = new Interest();     //creating a new row in Interest table using model
            $inter->interest_name=$userInterest;
            $inter->save();
        }
        return "Success";
 }

关于php - 如何将 jquery 数组传递给 laravel Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27127600/

相关文章:

javascript - 当输入 ="file"时,如何获得预选输入?

php - 如何使用 jQuery.ajax 和 jScroll 与 PHP 制作无限滚动页面

php - 这个preg_match语法匹配什么 ".+?"

jquery - 在 HTML/CSS Jquery 中创建一个漂亮的计数器圆

jquery - 无法从 jQuery Mobile 可折叠中移除蓝色光晕

java - 什么是NumberFormatException,我该如何解决?

javascript - 从下拉列表的选定值创建表列标题

javascript - Array.Push 仅返回最后推送的对象。如何解决?

python - 添加列数据框 python plus 乘以数组中的数字

php - preg_match() 期望参数 2 为字符串,给定数组