javascript - PHP - Laravel:我的提交按钮不起作用
问题描述
我正在开发一个网络应用程序,目前正在编写一个表单。由于某种原因,即使填写了表格,它也没有首先提交,我必须刷新页面才能将其提交到后端。
这是表单的代码:
@extends('layout.admin')
@section('styles')
<link rel="stylesheet" href="{{ asset('css/vendor/bootstrap-float-label.min.css') }}">
<link rel="stylesheet" type="text/css" href="{{ asset('css/vendor/select2.min.css')}}">
<link rel="stylesheet" type="text/css" href="{{ asset('css/vendor/select2-bootstrap.min.css')}}">
@endsection
@section('content')
@if (session()->has('success'))
<div class="alert alert-success rounded" role="alert">{{ session('success') }}</div>
@endif
@if(session()->has('error'))
<div class="alert alert-danger rounded" role="alert">{{ session('error') }}</div>
@endif
<form method="post" id="form" action="{{ isset($cliente) ? route('admin.clientes.update', $cliente) : route('admin.clientes.inserir') }}" class="form bv-form" enctype="multipart/form-data" novalidate>
@csrf
@if(isset($cliente))
@method('PUT')
@endif
<div class="container">
<div class="row">
<div class="col-md-7">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-2 form-group has-float-label position-relative error-l-50">
<label for="tipo-cliente">Tipo Cliente: </label> <br>
<input type="radio" name="tipo" id="p_fisica" value="1" @if(isset($cliente) && $cliente->tipo === 1) checked @endif> Pessoa Fisica <br>
<input type="radio" name="tipo" id="p_juridica" value="2" @if(isset($cliente) && $cliente->tipo === 2) checked @endif> Pessoa Juridica
</div>
<div class="col form-group position-relative error-l-50 has-float-label" id="div_nome">
<label for="nome">Nome</label>
<input type="text" id="nome" name="nome" class="form-control" value="{{ isset($cliente) ? $cliente->nome : old('nome') }}">
</div>
<div class="col form-group position-relative error-l-50 has-float-label" id="div_cpf">
<label for="cpf">CPF</label>
<input type="text" name="cpf" id="cpf" class="form-control cpf" value="{{ isset($cliente) ? $cliente->cpf : old('cpf') }}">
</div>
<div class="col-md-2 form-group has-float-label position-relative error-l-50" id="div_sexo">
<label for="sexo">Sexo</label><br>
<input type="radio" name="sexo" id="sexo_masc" value="1" @if(isset($cliente) && $cliente->sexo === 1) checked @endif> Masculino <br>
<input type="radio" name="sexo" id="sexo_fem" value="2" @if(isset($cliente) && $cliente->sexo === 1) checked @endif> Feminino
</div>
<div class="col has-float-label form-group position-relative error-l-50 display-invisible" id="div_cnpj">
<label for="cnpj">CNPJ</label>
<input type="text" name="cnpj" id="cnpj" class="form-control cnpj" value="{{ isset($cliente) ? $cliente->cnpj : old('cnpj') }}" onkeyup="isValidCNPJ(this)">
</div>
<div class="col form-group position-relative error-l-50 has-float-label display-invisible" id="div_razao">
<label for="razao_social">Razao Social</label>
<input type="text" name="razao_social" class="form-control" id="razao_social" value="{{ isset($cliente) ? $cliente->razao_social : old('razao_social') }}">
</div>
</div> <!-- row end -->
<div class="row">
<div class="col-md-3 form-group position-relative error-l-50 has-float-label">
<label for="empresa_filial">Empresa Filial: </label>
<select name="empresa_filial" class="form-control select2-single">
@foreach($empresas as $empresa)
<option value="{{$empresa->id}}" @if(isset($cliente) && $cliente->empresa_filial === $empresa->id) selected @endif>{{$empresa->nome_empresa}}</option>
@endforeach
</select>
</div>
<div class="col-md-4 has-float-label form-group position-relative error-l-50">
<label for="email">Email</label>
<input type="email" name="email" class="form-control" value="{{ isset($cliente) ? $cliente->email : old('email') }}">
</div>
<div class="col-md-2 has-float-label form-group position-relative error-l-50">
<label for="cod_pais_2">Pais</label>
<input type="text" name="cod_pais_2" class="form-control cod_pais_2" required value="+55" value="{{ isset($cliente) ? $cliente->cod_pais_2 : old('cod_pais_2') }}">
</div>
<div class="col-md-3 has-float-label form-group position-relative error-l-50">
<label for="telefone">Telefone</label>
<input type="text" name="telefone" class="form-control telefone" id="telefone" value="{{ isset($cliente) ? $cliente->telefone : old('telefone') }}">
</div>
</div> <!-- row end -->
<div class="row">
<div class="col-md-2 has-float-label form-group position-relative error-l-50">
<label for="cep">CEP</label>
<input type="text" name="cep" class="form-control cep" id="cep" name="cep" required value="{{ isset($cliente) ? $cliente->cep : old('cep') }}">
</div>
<div class="col-md-5 has-float-label form-group position-relative error-l-50">
<label for="endereco">Endereco</label>
<input type="text" name="endereco" class="form-control" required id="endereco" value="{{ isset($cliente) ? $cliente->endereco : old('endereco') }}">
</div>
<div class="col-md-2 has-float-label form-group position-relative error-l-50">
<label for="cod_pais_1">Pais</label>
<input type="text" name="cod_pais_1" class="form-control cod_pais_1" required value="+55" value="{{ isset($cliente) ? $cliente->cod_pais_1 : old('cod_pais_1') }}">
</div>
<div class="col-md-3 has-float-label form-group position-relative error-l-50">
<label for="telefone">Celular</label>
<input type="text" name="celular" class="form-control celular" required value="{{ isset($cliente) ? $cliente->celular : old('celular') }}">
</div>
</div> <!-- row end -->
<div class="row">
<div class="col has-float-label form-group position-relative error-l-50">
<label for="complemento">Complemento</label>
<input type="text" name="complemento" required class="form-control" id="complemento" value="{{ isset($cliente) ? $cliente->complemento : old('complemento') }}">
</div>
<div class="col has-float-label form-group position-relative error-l-50">
<label for="ponto_referencia">Ponto de Referencia</label>
<input type="text" name="ponto_referencia" class="form-control" id="ponto_referencia" value="{{ isset($cliente) ? $cliente->ponto_referencia : old('ponto_referencia') }}">
</div>
<div class="col has-float-label form-group position-relative error-l-50">
<label for="bairro">Bairro</label>
<input type="text" name="bairro" class="form-control" required id="bairro" value="{{ isset($cliente) ? $cliente->bairro : old('bairro') }}">
</div>
</div><!-- row end -->
<div class="row">
<div class="col has-float-label form-group position-relative error-l-50">
<label for="cidade">Cidade</label>
<input type="text" name="cidade" required id="cidade" class="form-control" value="{{ isset($cliente) ? $cliente->cidade : old('cidade') }}">
</div>
<div class="col has-float-label form-group position-relative error-l-50">
<label for="uf">Estado</label>
<select class="form-control select2-single" name="uf" required>
<option value="" selected>Selecione</option>
@foreach(\App\Helpers\Helpers::estados() as $estado => $nome)
<option value="{{ $estado }}" @if(isset($cliente) && $cliente->uf === $estado) selected @endif>{{ $nome }}</option>
@endforeach
</select>
</div>
<div class="col has-float-label form-group position-relative error-l-50">
<label for="pais">Pais</label>
<select class="form-control select2-single" required id="pais" name="pais" data-width="100%">
@foreach(\App\Helpers\Helpers::paises() as $pais)
<option value="{{ $pais['nome'] }}" @if(isset($cliente) && $cliente->pais === $pais) selected @endif>{{ $pais['nome'] }}</option>
@endforeach
</select>
</div>
</div><!-- row end -->
<div class="row">
<div class="col has-float-label form-group position-relative error-l-50">
<label for="observacao">Observacao</label>
<input type="text" name="observacao" class="form-control" id="observacao" value="{{ isset($cliente) ? $cliente->observacao : old('observacao') }}">
</div>
</div><!-- row end -->
</div>
</div>
</div>
<div class="col-md-5">
<div class="card" style="padding-bottom: 2px">
<div class="card-body">
<div class="row">
<h3 style="margin-left:8px">Informacoes de Cobranca</h3>
</div><!-- row end -->
<div class="row">
<input type="checkbox" name="reciclar_info" id="client-check" style="margin-left:8px" onchange="chargingFields()">
<span style="margin: 10px">Usar as mesmas informacoes de endereco para cobranca</span>
<hr class="style-six"> <br>
</div>
<div class="row">
<div class="col-md-4 has-float-label form-group position-relative error-l-50">
<label for="cobranca_cnpj">CNPJ</label>
<input type="text" name="cobranca_cnpj" onkeyup="isValidCobrancaCNPJ()" class="form-control cnpj" id="cobranca_cnpj" value="{{ isset($cliente) ? $cliente->cobranca_cnpj : old('cobranca_cnpj') }}">
</div>
<div class="col-md-8 has-float-label form-group position-relative error-l-50">
<label for="cobranca_razao_social">Razao Social</label>
<input type="text" name="cobranca_razao_social" class="form-control" id="cobranca_razao_social" value="{{ isset($cliente) ? $cliente->cobranca_razao_social : old('cobranca_razao_social') }}">
</div>
</div><!-- row end -->
<div class="row">
<div class="col-md-4 has-float-label form-group position-relative error-l-50">
<label for="cobranca_cep">CEP</label>
<input type="text" name="cobranca_cep" class="form-control cep" id="cobranca_cep" value="{{ isset($cliente) ? $cliente->cobranca_cep : old('cobranca_cep') }}">
</div>
<div class="col-md-8 has-float-label form-group position-relative error-l-50">
<label for="cobranca_endereco">Endereco</label>
<input type="text" name="cobranca_endereco" class="form-control" id="cobranca_endereco" value="{{ isset($cliente) ? $cliente->cobranca_endereco : old('cobranca_endereco') }}">
</div>
</div>
<div class="row">
<div class="col has-float-label form-group position-relative error-l-50">
<label for="cobranca_complemento">Complemento</label>
<input type="text" name="cobranca_complemento" class="form-control" id="cobranca_complemento" value="{{ isset($cliente) ? $cliente->cobranca_complemento : old('cobranca_complemento') }}">
</div>
<div class="col has-float-label form-group position-relative error-l-50">
<label for="cobranca_ponto_referencia">Ponto de Referencia</label>
<input type="text" name="cobranca_ponto_referencia" id="cobranca_ponto_referencia" class="form-control" value="{{ isset($cliente) ? $cliente->cobranca_ponto_referencia : old('cobranca_ponto_referencia') }}">
</div>
<div class="col has-float-label form-group position-relative error-l-50">
<label for="cobranca_bairro">Bairro</label>
<input type="text" name="cobranca_bairro" class="form-control" id="cobranca_bairro" value="{{ isset($cliente) ? $cliente->cobranca_bairro : old('cobranca_bairro') }}">
</div>
</div>
<div class="row">
<div class="col has-float-label form-group position-relative error-l-50">
<label for="cobranca_cidade">Cidade</label>
<input type="text" name="cobranca_cidade" id="cobranca_cidade" class="form-control" value="{{ isset($cliente) ? $cliente->cobranca_cidade : old('cobranca_cidade') }}">
</div>
<div class="col has-float-label form-group position-relative error-l-50">
<label for="cobranca_uf">Estado</label>
<select class="form-control select2-single" name="cobranca_uf" id="cobranca_uf">
<option value="" selected>Selecione</option>
@foreach(\App\Helpers\Helpers::estados() as $estado => $nome)
<option value="{{ $estado }}"
@if(isset($cliente) && $cliente->cobranca_uf === $estado) selected @endif>{{ $nome }}</option>
@endforeach
</select>
</div>
<div class="col has-float-label form-group position-relative error-l-50">
<label for="cobranca_pais">Pais</label>
<select class="form-control select2-single" name="cobranca_pais" id="cobranca_pais">
@foreach(\App\Helpers\Helpers::paises() as $pais)
<option value="{{ $pais['nome'] }}" @if(isset($cliente) && $cliente->cobranca_pais === $pais) selected @endif>{{ $pais['nome'] }}</option>
@endforeach
</select>
</div>
</div><!-- row end -->
<div class="row">
<div class="col has-float-label form-group position-relative error-l-50">
<label for="cobranca_observacao">Observacao</label>
<input type="text" name="cobranca_observacao" class="form-control" id="cobranca_observacao" value="{{ isset($cliente) ? $cliente->cobranca_observacao : old('cobranca_observacao') }}">
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-md-1">
<button type="submit" id="save-button" class="btn btn-primary float-left" style="margin-top: 10px">
@if(isset($cliente))
Salvar
@else
Adicionar
@endif
</button>
</div>
</div><!-- row end -->
</div>
</form>
@endsection
@section('js')
<script src="{{ asset('js/vendor/jquery.validate/jquery.validate.min.js') }}"></script>
<script src="{{ asset('js/vendor/jquery.validate/additional-methods.min.js') }}"></script>
<script src="{{ asset('js/vendor/select2.full.js') }}"></script>
<script>
const addressApiUrl = "{{ route('pega.endereco') }}";
</script>
<script src="{{ asset('js/cliente_form.js') }}"></script>
<script type="text/javascript">
var sent = false;
function isValidCobrancaCNPJ() {
var strCNPJ = $("#cobranca_cnpj").val();
console.log(strCNPJ);
// Caso o CEP não esteja nesse formato ele é inválido!
var objER = /^[0-9]{14}$/;
strCNPJ = Trim(strCNPJ);
if(strCNPJ.length > 0) {
if(objER.test(strCNPJ) && !sent) {
sent = true;
formReadOnly(true);
$.ajax({
method: 'POST',
url: "{{ route('pega.cnpj.interno') }}",
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data: {cnpj: strCNPJ},
success: function (data) {
if(!data.error) {
$.notify({
// options
message: 'CNPJ verificado!'
},{
// settings
type: 'success'
});
$('#cobranca_razao_social').val(data.razao_social);
$('#cobranca_cep').val(data.cep);
$('#cobranca_endereco').val(data.endereco);
$('#cobranca_bairro').val(data.bairro);
$('#cobranca_cidade').val(data.cidade);
$('#cobranca_uf').val(data.uf);
$('#cobranca_endereco').focus();
sent = false;
$('#form').bootstrapValidator('destroy');
$('#form').data('bootstrapValidator', null);
$('#form').bootstrapValidator();
}else{
$.notify({
// options
message: data.msg
},{
// settings
type: 'danger'
});
sent = false;
}
formReadOnly(false);
},
error: function (msg) {
sent = false;
formReadOnly(false);
}
});
}
}
}
function Trim(strTexto)
{
// Substitúi os espaços vazios no inicio e no fim da string por vazio.
return strTexto.replace(/\D/g, "");
}
function isValidCNPJ() {
var strCNPJ = $("#cnpj").val();
console.log(strCNPJ);
// Caso o CEP não esteja nesse formato ele é inválido!
var objER = /^[0-9]{14}$/;
strCNPJ = Trim(strCNPJ);
if(strCNPJ.length > 0)
{
if(objER.test(strCNPJ) && !sent)
{
sent = true;
formReadOnly(true);
$.ajax({
method: 'POST',
url: "{{ route('pega.cnpj.interno') }}",
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
data: {cnpj: strCNPJ},
success: function (data)
{
if(!data.error)
{
$.notify({
// options
message: 'CNPJ verificado!'
},{
// settings
type: 'success'
});
$('#razao_social').val(data.razao_social);
$('#cep').val(data.cep);
$('#endereco').val(data.endereco);
$('#bairro').val(data.bairro);
$('#cidade').val(data.cidade);
$('#uf').val(data.uf);
$('#endereco').focus();
sent = false;
$('#form').bootstrapValidator('destroy');
$('#form').data('bootstrapValidator', null);
$('#form').bootstrapValidator();
}else{
$.notify({
// options
message: data.msg
},{
// settings
type: 'danger'
});
sent = false;
}
formReadOnly(false);
},
error: function (msg) {
sent = false;
formReadOnly(false);
}
});
}
}
}
</script>
@endsection
控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Models\Empresa;
use App\Models\Cliente;
class ClienteController extends Controller
{
public function index() {
$data['clientes'] = Cliente::all();
return view('admin.clientes.index', $data);
}
public function addCliente() {
$data['empresas'] = Empresa::all();
return view('admin.clientes.cadastro',$data);
}
public function insert(Request $request) {
$cliente = new Cliente;
$cliente->empresa_filial = $request->empresa_filial;
$cliente->tipo = $request->tipo;
$cliente->email = $request->email;
if ($request->tipo == 1) {
$cliente->nome = $request->nome;
$cliente->cpf = $request->cpf;
$cliente->cnpj = $cliente->razao_social = "";
} else {
$cliente->cnpj = $request->cnpj;
$cliente->razao_social = $request->razao_social;
$cliente->nome = $cliente->cpf = "";
}
//had to resume code due to body limitations, but basically what is above for other fields
$cliente->save();
return redirect()->back()->with(['success' => 'Cliente cadastrado com sucesso!']);
}
public function update($identificacao, Request $request) {
$cliente->save();
}
}
我目前正在使用 Laravel 作为框架并尝试了所有方法(@csrf、csrf_field()、通过隐藏输入添加令牌),没有任何效果,我迷路了。
此外,通过检查浏览器的网络活动,获取地址等信息的 POST 方法在表单内工作正常,唯一的问题是提交按钮。
编辑:路线:
Route::prefix('clientes')->group(function() {
Route::view('/1/detalhes', 'admin.clientes.detalhes')->name('admin.clientes.detalhes');
Route::get('/', 'ClienteController@index')->name('admin.clientes.index');
Route::get('/cadastro', 'ClienteController@addCliente')->name('admin.clientes.cadastro');
Route::get('/atualizar/{cliente}', 'ClienteController@atualizarCliente')->name('admin.clientes.atualizar');
Route::get('/{cliente}', 'ClienteController@delete')->name('admin.clientes.delete');
Route::put('/atualizar/{cliente}', 'ClienteController@update')->name('admin.clientes.update');
Route::post('/cadastro', 'ClienteController@insert')->name('admin.clientes.inserir');
});
解决方案
推荐阅读
- assembly - 在 asm 中分配堆栈时,我应该为 %rsp 保持什么大小,16 的倍数或 16 的倍数加 8
- python - 未找到或无法识别表单
- vbscript - 将 For Each 循环中的属性值连接到一行输出
- tatsu - 如何在 Tatsu 语法中包含文字“#”?
- javascript - Laravel + AJAX:分页链接不起作用
- ios - ios 应用程序的分数跟踪系统中的变量未更新
- python - 如何在方法中评估布尔关键字参数?
- python - 将变量传递给框架
- java - 找不到 Dropwizard 身份验证的“用户”类
- javascript - 不会将数组中的 img 添加到 div 背景