【问题标题】:Laravel ajax won't act properlyLaravel ajax 无法正常运行
【发布时间】:2018-08-13 11:39:56
【问题描述】:

我正在尝试通过 ajax 保存数据,问题是我一遍又一遍地获取相同的 ID。

代码

我的数据如何附加到刀片上

    if(value1['type'] == 'textfield'){
      var my_row = $('<div class="row mt-20 ccin">');
      var my_html = '{{ Form::open() }}<input name="product_id" id="product_id" type="hidden" value="{{$product->id}}"><input name="specification_id" id="specification_id" type="hidden" value="'+vvvid+'"><div class="col-md-4">'+value1.title+'</div>';
      my_html += '<div class="col-md-6"><input id="text_dec" name="text_dec[]" placeholder="text field" class="text_dec form-control"></div>';
      my_html += '<div class="col-md-2"><button type="button" id="custmodalsavee" class="custmodalsavee btn btn-xs btn-success">Save</button>{{Form::close()}}</div>';
      my_row.html(my_html);
      $('div#dataaa').append(my_row);
}else if(value1['type'] == 'textareafield'){
       var my_row = $('<div class="row mt-20 ccin">');
       var my_html = '{{ Form::open() }}<input name="product_id" id="product_id" type="hidden" value="{{$product->id}}"><input name="specification_id" id="specification_id" type="hidden" value="'+vvvid+'"><div class="col-md-4">'+value1.title+'</div>';
       my_html += '<div class="col-md-6"><textarea id="longtext_dec" name="longtext_dec[]" placeholder="text area field" class="longtext_dec form-control"></textarea></div>';
       my_html += '<div class="col-md-2"><button type="button" id="custmodalsavee" class="custmodalsavee btn btn-xs btn-success">Save</button>{{Form::close()}}</div>';
       my_row.html(my_html);
       $('div#dataaa').append(my_row);
}

script

<script>
$("body").on("click", ".custmodalsavee", function(e){
      e.preventDefault();
      $.ajax({
        type: "post",
        url: "{{ url('admin/addnewcustomsubspecifications') }}",
        data: {
          '_token': $('input[name=_token]').val(),
          'product_id': $('#product_id').val(),
          'specification_id': $("#specification_id").val(),
          'text_dec': $('.text_dec').val(),
          'longtext_dec': $('.longtext_dec').val(),
        },
        success: function (data) {
          $('#custspacmsg').append('<span class="text-success">Custom Specification added successfully in your product!</span>').fadeIn().delay(3000).fadeOut();
            console.log('done!');
            $('.myButton').css('display', 'none');
            $('.myButtonlong').css('display', 'none');
            $('.removebtn').css('display', 'none');
        },
        error: function (data) {
          console.log('Error!');
        }
      });
});
</script>

说明

这就是我的specification_id 的附加方式:

<input name="specification_id" id="specification_id" value="66" type="hidden">

另外一个例子

<input name="specification_id" id="specification_id" value="67" type="hidden">

正如你看到的,id 是不同的,但每次我保存我的数据时,它都会使用第一个表单 specification_id 66,所以当我尝试使用 specification_id 67 保存数据时,它也会保存为 66

PS:也许值得一提(不确定)我有几个脚本 在身体上运行

$("body").on("click", ".....", function(e){

有什么想法吗?

【问题讨论】:

标签: javascript jquery ajax laravel


【解决方案1】:

已解决

我加了

var form = $(this).closest('form');

并将我的specification_id 更改为:

'specification_id': $(this).closest('form').find('#specification_id').val(),

现在它可以正常工作了。

【讨论】:

    猜你喜欢
    • 2011-02-23
    • 2021-06-16
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2015-12-08
    • 2019-02-08
    相关资源
    最近更新 更多