如何处理接收到的数据以将其保存在数据库Laravel和Ajax中?

h

我正在尝试将具有多个图像的产品添加到数据库中而不刷新页面,控制台上没有出现任何错误,但是我看到的长文本是这样的

<script> Sfdump = window.Sfdump || (function (doc) { var refStyle = doc.createElement('style'), rxEsc = /([.*+?^${}()|\[\]\/\\])/g, idRx = /\bsf-dump-\d+-ref[012]\w+\b/, keyHint = 0 <= navigator.platform.toUpperCase().indexOf('MAC') ? 'Cmd' : 'Ctrl', addEventListener = ....

错误来自此行console.log(data);该产品与ProductsPhoto有关系,如何使该产品添加到数据库中?

控制者

 public function store(Request $request)
 {
    $formInput=$request->except('filename');

    $product = product::create(array_merge($formInput, [
        'seller_id'=> Auth::user()->id,
        'user_id' => Auth::user()->id
    ]));
    foreach ($request->photos as $photo) {
       $filename = $photo->store('public/photos');
        ProductsPhoto::create([
            'product_id' => $product->id,
            'filename' => $filename
        ]);
    }
}

  <div class="panel-body">

   <input type="hidden" value="{{csrf_token()}}" id="token"/>

     <label for="pro_name">Name</label>
      <input type="text" class="form-control" name="pro_name" id="pro_name" placeholder="Enter product name">

        <label for="pro_price">Price</label>
           <input type="text" class="form-control" name="pro_price" id="pro_price" placeholder="Enter price">

        <label for="pro_info">Description</label>
         <input type="text" class="form-control" name="pro_info" id="pro_info" placeholder="Enter product description">

           <label for="stock">Stock</label>
            <input type="text" class="form-control" name="stock" id="stock" placeholder="Enter stock">

        <label  for="category_id">Choose Category</label>
           <select name="category_name" id="category_name">
             <option value=""> --Select Category -- </option>
               @foreach ($categoryname_array as $data)
                <option value="{{ $data->name }}"  >{{$data->name}}</option>
                 @endforeach
               </select>

 <label for="photos">Choose 5 Images</label>
  <input  "multiple="multiple" id="photos" name="photos[]" type="file">

  <input type="submit" class="btn btn-primary" value="Submit" id="btn"/>

</div>

阿贾克斯

   $(document).ready(function(){
   $("#btn").click(function(){
    var category_name = $("#category_name").val()
    var pro_name = $("#pro_name").val();
    var pro_price = $("#pro_price").val();
    var stock = $("#stock").val();
    var pro_info = $("#pro_info").val();
    var photos = $("#photos").val();
    var token = $("#token").val();

    $.ajax({

        type: "post",
        data: "pro_name=" + pro_name + "&pro_price=" + pro_price + "&stock=" + stock + "&_token=" + token + "&category_name=" + category_name + "&pro_info=" + pro_info + "&photos=" + photos,
        url: "<?php echo url('seller/product') ?>",
        success:function(data){
        console.log(data);
        }

    });
  });
});

路线

 Route::post('seller/product', 'ProductController@store')->name('product.store');
梅兹

根据您在注释中添加的错误,其中的值$request->photos不可迭代,这是有道理的,因为您没有使用表单数据来处理上传。

普通的ajax无法处理文件上传,因此您必须使用formData

var token = $("#token").val();
$(document).ready(function(){
    $("#btn").click(function(){
        var form = $('form')[0]; // You need to use standard javascript object here
        var formData = new FormData(form);
        formData.append('_token', token); // adding token
        $.ajax({
            url: "<?php echo url('seller/product') ?>",
            data: formData, //just that without variables
            type: 'POST',
            contentType: false, // NEEDED, DON'T OMIT THIS (requires jQuery 1.6+)
            processData: false, // NEEDED, DON'T OMIT THIS
            success:function(data){
                console.log(data);
            }
        });
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从json获取数据以将其保存在数据库中?

Laravel 5和Socialite,如何保存在数据库中并登录

如何在ajax中序列化表单并使用laravel将数据保存在数据库中?

如何在模型中保存字段而不将其持久保存在数据库中?

更改日期格式以通过Laravel 5.8将其保存在数据库中

如何在tableview中编辑并将其保存在数据库中

小豆 如何从控制器中的Ajax将数据保存在数据库中

如何上传图像并将其保存在数据库中?

如何创建记录而不将其保存在数据库中

如何创建Sequelize模型实例而不将其保存在数据库中?

如何爆炸数组并将其保存在数据库中

如何在Laravel上使用Cast将数据json保存在数据库中?

如何使用jQuery Ajax传递表单数据以在数据库中插入数据?

如何同时处理多个发布请求,同时将其中一个请求保存在数据库中?

如何使用laravel 8显示保存在数据库中的图像?

EF-将日期时间和特定时区保存在数据库中,但将其读取为UTC

larker在laravel中如何处理数据库和模型?

如何在Log4j中清理日志消息以将其保存在数据库中

如何从互联网上的某些资源中读取信息并将其保存在数据库中

如何在数据库中生成并插入数百万个随机数,然后将其保存在Laravel中?

如何将变量从选项值存储到控制器并使用 Laravel 将其保存在数据库中?

将数据一一保存在会话中,然后将其全部保存在数据库中

如何使用通过 Symfony 4 中的 Ajax 加载的表单将数据保存在数据库中?

Yii2 如何将接收到的 JSON 数据保存到数据库中

每次创建文章并将其保存在数据库中时,如何生成一个标签?

休息控制器,提供枚举名称但将其值保存在数据库中

使用视图或将其持久保存在数据库中的计算字段

使用C#编辑DataGridview并将其保存在数据库表中

从标签区域获取值(类似于stackoverflow)并将其保存在数据库中