在jquery函数中传递ajax数据调用中的两个变量

时间:2017-05-16 12:43:28

标签: javascript php jquery ajax laravel-5.4

我在我的jquery函数中得到两个变量,以及如何在ajax调用中的数据中传递它并在laravel控制器中获取它

这是我的功能

$('#updateProduct').on('submit', function(e){
    e.preventDefault(e);
    var redirect_url = $(this).find("[name='redirect_url']").val();
    var url = $(this).attr('action');
    var method = $(this).attr('method');
    var videos = document.getElementById('videoToUpload').files[0];
      var myData ={
      'name': $(this).find("[name='name']").val(),
      'description': $(this).find("[name='description']").val(),
      'brand': $(this).find("[name='brand']").val(),
      'category': $(this).find("[name='category']").val(),
      'condition': $(this).find("[name='condition']").val(),
      'shipper': $(this).find("[name='shipper']").val(),
      'shipping_from': $(this).find("[name='shipping_from']").val(),
      'shipping_paid_by': $(this).find("[name='shipping_paid_by']").val(),
      'shipping_within' :$(this).find("[name='shipping_within']").val(),
      'shipping_weight': $(this).find("[name='shipping_weight']").val(),
      'shipping_fee': $(this).find("[name='shipping_fee']").val(),
      'seller_get' : $(this).find("[name='seller_get']").val(),
      'price_per_unit': $(this).find("[name='price_per_unit']").val(),
      'selling_fee' : $(this).find("[name='selling_fee']").val(),
      'is_active':$(this).find("[name='is_active']:checked").val(),
      //'videos' :$("#videoToUpload").files[0],
     //'videos' : document.getElementById('videoToUpload').files[0],
    }
    console.log(data);
   $.ajax({
        type: method,
        url: url,
        dataType: 'JSON',
       data: {'myData':myData
               'videos':new FormData("videos", document.getElementById('videoToUpload').files[0])
               },
        success: function(data){
          alert("Products updated successfullly");
          console.log(data);
           //window.location.href = redirect_url;
        },
        error: function(jqXHR, textStatus, errorThrown) {
          console.log(JSON.stringify(jqXHR));
          console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
        }
      });

这里我有两个变量videos和其他myData现在我的问题是如何在数据中传递这两个变量并在laravel controller中请求此变量

1 个答案:

答案 0 :(得分:0)

你做得很好,但忘了写逗号

$.ajax({
    type: method,
    url: url,
    dataType: 'JSON',
    data: {'myData': myData, 'videos': new FormData("videos", document.getElementById('videoToUpload').files[0]) },
    success: function(data){
      // .........
    },
    error: function(jqXHR, textStatus, errorThrown) {
      // .........
    }
  });

顺便说一句,不要花时间定义变量的每个输入,使用jquery serializePHP unserialize,或者您可以使用下面的代码创建Serialize Object

    $.fn.serializeObject = function() {
    var o = {};
    var a = this.serializeArray();
    $.each(a, function() {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};