【问题标题】:Laravel post form is not submitting?Laravel 发布表单未提交?
【发布时间】:2020-10-25 17:25:46
【问题描述】:

我想制作一个表单,您可以在其中选择已完成的练习,然后将它们添加到数据库中,但问题是我什至无法提交我的帖子表单。按下按钮时,该按钮不执行任何操作。

这是我的视图文件:

@extends('layouts.app')

    @section('content')
    <div class="container">
    <div class="row">

    <div class="col-md-8 col-md-offset-2">



        <div class="panel panel-default">
            <div class="panel-body">
                <h2>Excercise - {{$excercises[0]->hnro}}</h2>
                <hr>
                <div class="col-md-10">
                @if (session('error'))
                    <div class="alert alert-danger">
                        {{ session('error') }}
                    </div>
                @endif
                    @if (session('success'))
                        <div class="alert alert-success">
                            {{ session('success') }}
                        </div> 
                    @endif
                    
                <form class="form-horizontal" name="form" method="POST" action="{{ route('storeScores') }}">
                
                    <div class="form-group row">
                        <div class="col-md-12">
                        <input type="url" name="url" id="url" class="form-control" placeholder="Copy the URL here" required autofocus>
                        </div>
                    </div>
                
    </div>

    @foreach($excercises as $excercise)

    <div class="row">
    <div class="form-group col-md-3 col-md-offset-1">
    <select class="form-control" id="select{{$excercise->tnro}}" name="teht[]" required>
    <option value="">Excercise {{$excercise->tnro}}</option>
    <optgroup label="Choose your points">
    @for ($i=0; $i<=$excercise->maxpist;$i++)
    <option value="{{$i}}">{{$i}} points</option>
    @endfor
    </optgroup>


    </select>
    </div>
    </div>
    @endforeach



    <div class="form-group row">
                        <div class="col-md-5 col-md-offset-1">
                            <button type="submit" name="save" class="btn btn- 
   primary">Tallenna</button>
                        </div>
                    </div>

                            <input type="hidden" name="hnro" value="">
                            <input type="hidden" name="student_id" value="">

                </form>
            </div>
        </div>
    </div>
</div>
    </div>
    @endsection

这是我的路线:

Route::get('/addscoreform','HarkkaController@showExcercises');
Route::post('/addscoreform','HarkkaController@storeScores')->name('storeScores');

这是我的控制器:

public function storeScores(Request $request)
{
    return redirect()->back()->with('success','Form has been sent...');
}

我的问题是提交后我什至无法显示成功消息!好像按钮不起作用!

【问题讨论】:

  • 我在这里没有看到任何
    你的表单
    标签,如果你不将按钮包裹在表单标签内,它怎么会触发?
  • 按钮被包裹在一个
    标签中。您可以在视图中看到它。
  • 你在用vscode吗?如果是这样安装刀片 sn-ps 扩展,它将帮助您格式化 html/php/blade 并更容易地查看错误。
  • 是的,我正在使用 vscode。我安装了扩展,它确实使代码更清晰,但它没有显示任何错误,所以我真的不知道从哪里开始找到问题。

标签: php laravel forms


【解决方案1】:

您似乎遇到了标签嵌套问题。

<form ...>
  <div class="form-group row">
    <div class="col-md-12">
      <input type="url" name="url" id="url" class="form-control" ...>
    </div>
  </div>          
</div>
...
</form>

什么是第三关?确保开始和结束标记正确嵌套。

一些可能有助于更好地组织它并使其更易于维护的事情是尽可能消除任何标签,并将事物分解为更小的子视图并尽可能多地包含语句。子视图描述在https://laravel.com/docs/master/blade#including-subviews

【讨论】:

  • 结束 div 用于
    。嗯,谢谢你的提示,我去看看..
  • 在这种情况下,您应该将
    移动到
    标记内,这样可以使嵌套对齐。将每个标签视为一个容器。表单需要完全包含该 div,或者该 div 需要完全包含该表单。
  • 实际上,我需要将
    移到底部,现在它可以工作了!天哪,我不敢相信我错过了。表单 CSS 现在有点不稳定,但我会尝试修复它。
猜你喜欢
相关资源
最近更新 更多
热门标签