Laravel 5.4 - 如何在javascript加载之前使@section收益



我正在使用javascript动态创建一个表单,该表单从聊天中获取答案并将其添加到表单中。表单存在于单独的刀片式服务器文件中,register.blade.php。我在主页(index.blade.php(中生成了表单,但是@section('registration-form')在读取js之前生成了页面。因此,聊天中的答案永远不会输入到表单中。

register.blade.php保存(自定义(表单@section('registration-form')。从那里我想创建一个route::get('/index', 'CustomAuthController')routes/web.php,以将表单数据存储在我的数据库中。关于如何使这项工作的任何想法?

对拉拉维尔来说非常陌生。使用 Laravel 5.4。

代码:



layouts/app.blade.php

@include('includes.head')
<body>        
@include('includes.navbar')
<div class="container">
@yield('content')
</div>
@include('includes.footer')
</body>



索引刀片.php

@extends('layouts.app') 
@section('content')
<main>      
<section class="row" >    
<!------ a bunch of content here ----------->
<!----- form yielded here -------->
@yield('registration-form')
<!--- form end ----->
<!------ more content -------->
</section>
</main>
@endsection

注册刀片.php

@section('registration-form')
<div class="padding-32" id="signup-two">
<h4>Review and submit your information</h4>
<form  method="POST" action="{{ route('signup') }}">
{{ csrf_field() }}
<div class="form-group" id="fname">
<label></label>
<input name="fname"/>
</div>
<div class="form-group" id="email">
<label></label>
<input name="email"/>
</div>
<div class="form-group" id="password">
<label></label>
<input name="password"/>
</div>
<div class="form-group" id="BMI">
<label></label>
<input name="BMI"/>
</div>
<div class="form-group" id="height">
<label></label>
<input name="height"/>
</div>
<div class="form-group" id="weight">
<label></label>
<input name="weight"/>
</div>
</form>
@endsection

我尝试在表单仍然没有加载app.blade.php产生@section(registration-form)。我也不知道如何为此创建路由和控制器。代码如下所示:

layouts/app.blade.php

@include('includes.head')
<body>
@include('includes.navbar')
<div class="container">
@yield('content')
@yield('registration-form')
</div>
@include('includes.footer')
</body>
</html>

路线/网络.php

Route::get('/index', function () {
return view('registration-form', [
'fname' => 'fname',
'BMI' => 'BMI',
'height' => 'height',
'weight' => 'weight'
]);
});

Javascript 通常在 dom 准备就绪时加载。

但是您希望在特定 DOM(@yield(form(( 元素准备就绪之前加载脚本。

所以你必须做一些类似"使用 ajax 的 laravel 加载视图"的事情,周围已经有一些实际的例子。如何在 Laravel 5 中从 AJAX 调用返回视图?

你想为Ajax调用创建一个路由器,控制器函数返回部分视图(因此@section('form'((。在 js 中准备好必要的代码后调用 ajax。然后将视图追加到所需位置。没有简单的方法。

你可能想重新考虑你现在想要完成的任何事情的设计。

对于数据操作、计算等。如果它们可以由后端完成和验证,只需将它们发送到后端即可。一个常见的错误是前端试图处理后端任务。

最新更新