Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在laravel中使用ajax提交多个表单_Javascript_Php_Ajax_Laravel 5_Laravel 5.5 - Fatal编程技术网

Javascript 在laravel中使用ajax提交多个表单

Javascript 在laravel中使用ajax提交多个表单,javascript,php,ajax,laravel-5,laravel-5.5,Javascript,Php,Ajax,Laravel 5,Laravel 5.5,我面临一个问题。我在一页中提交了多个表单。我需要提交所有那些与外页重新加载。我正在尝试一些Ajax代码。使用ajax代码,可以正确提交第一个表单,但表单的其余部分不起作用 这是我的视图文件 <div class="col-md-6 col-lg-6 col-sm-6 col-lg-offset-5"> @endforeach 视图文件的输出为- 我的路线回答。商店在这里 public function store(Request $request) { // i

我面临一个问题。我在一页中提交了多个表单。我需要提交所有那些与外页重新加载。我正在尝试一些Ajax代码。使用ajax代码,可以正确提交第一个表单,但表单的其余部分不起作用

这是我的视图文件

<div class="col-md-6 col-lg-6 col-sm-6 col-lg-offset-5">
@endforeach

视图文件的输出为-

我的路线回答。商店在这里

public function store(Request $request)
{
    //
    if ($request->ajax()) {
        $answer=Answer::create([
            'stu_id' => $request->input('student_id'),
            'question' => $request->input('question'),
            'given_answer' => $request->input('answer'),
            'true_answer' => $request->input('true_answer')

        ]);
        return response($answer);
    }else{
        return "ajax not done";
    }
}
最后,ajax脚本是

<script type="text/javascript">
    $(document).ready(function(){
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });
    });

    $('#ansform').on('submit',function(e){
        e.preventDefault();
        var data = $(this).serialize();
        var url = $(this).attr('action');
        var post = $(this).attr('method');
        $.ajax({
            type : post,
            url : url,
            data :data,
            success:function(data){
                console.log(data)
            }
        })
    })
</script>

$(文档).ready(函数(){
$.ajaxSetup({
标题:{
'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]).attr('content'))
}
});
});
$('#ansform')。关于('submit',函数(e){
e、 预防默认值();
var data=$(this.serialize();
var url=$(this.attr('action');
var post=$(this.attr('method');
$.ajax({
类型:post,,
url:url,
数据:数据,
成功:功能(数据){
console.log(数据)
}
})
})

任何人都可以帮助我。我该怎么做呢?

我在回答最后一条评论

$('.ansform').on('submit',function(e){
    var form = $(this);
    var submit = form.find("[type=submit]");
    var submitOriginalText = submit.attr("value");

    e.preventDefault();
    var data = form.serialize();
    var url = form.attr('action');
    var post = form.attr('method');
    $.ajax({
        type : post,
        url : url,
        data :data,
        success:function(data){
           submit.attr("value", "Submitted");
        },
        beforeSend: function(){
           submit.attr("value", "Loading...");
           submit.prop("disabled", true);
        },
        error: function() {
            submit.attr("value", submitOriginalText);
            submit.prop("disabled", false);
           // show error to end user
        }
    })
})
这应该行得通。 在发送表单之前,我们将禁用“提交”按钮(这样可以防止重复提交)。然后我们将文本更改为“加载…”或告诉最终用户必须等到查询完成

如果AJAX成功:我们将禁用按钮,并将文本更改为submitted

如果出现错误:我们启用提交,返回原始文本并允许最终用户再次提交。你必须向他表明你的错误或别的什么


您可以查看AJAX事件:。

您不能在页面中重复元素ID。它们的定义是独一无二的。使用类而不是首先,您似乎要生成具有相同id的多个表单,使用一个类并更改事件侦听器(
$('.someclass')。在('submit',函数(e){
)上,您能建议我在代码中使用类的位置吗?您能给我一个示例代码吗?@MustaqueAhmed而不是
$('.#ansform')。on('submit',函数(e){
使用
$('.ansform')。在('submit',函数(e){
@CappY谢谢你。它很有效。有点帮助…在提交表单后我如何禁用按钮?就像它将显示已提交,并且链接已禁用一样?
$('.ansform').on('submit',function(e){
    var form = $(this);
    var submit = form.find("[type=submit]");
    var submitOriginalText = submit.attr("value");

    e.preventDefault();
    var data = form.serialize();
    var url = form.attr('action');
    var post = form.attr('method');
    $.ajax({
        type : post,
        url : url,
        data :data,
        success:function(data){
           submit.attr("value", "Submitted");
        },
        beforeSend: function(){
           submit.attr("value", "Loading...");
           submit.prop("disabled", true);
        },
        error: function() {
            submit.attr("value", submitOriginalText);
            submit.prop("disabled", false);
           // show error to end user
        }
    })
})