【发布时间】:2021-11-23 08:57:00
【问题描述】:
我的问题是,当我通过 JS 发送所有信息时,没问题,但我的控制器没有收到数据。 我需要发送表单和对象数组中的所有信息。 我正在使用 Laravel 和 Ajax /Jquery。
JS / Jquery /Ajax 代码
$(document).ready(function()
{
$('#BtnRegistrar').click(function(event) {
event.preventDefault();
var dataString = $('#formulario').serialize();
$.ajax({
type: "POST",
data: {data:dataString, list:cursos}, //Here load the form data and my array of objects
contentType: 'application/json; charset=utf-8',
headers: {'X-CSRF-Token': $('meta[name="csrf-token"]').attr('content')},
success: function(data) {
console.log('Done');
}
});
});
});
Laravel.blade.php
<form method="post" action="/coordinacionCarrera/agregarNombramiento" id="formulario">
@csrf
<div class="row">
<div class="row">
<div class="col-md-6">
<label for="docente">Escoja el docente.</label>
<div class="input-group">
<span class="input-group-text" id="basic-addon1">
<i class="fas fa-id-card"></i>
</span>
<select required class="form-select" name="usuario" id="usuario">
<option selected>Seleccione</option>
@foreach ($usuario as $user)
<option value={{$user->id}}>{{$user->persona->Cedula}} | {{$user->persona->Nombre}} {{$user->persona->PrimerApellido}} {{$user->persona->SegundoApellido}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-3">
<label for="Desde">Desde.</label>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="fas fa-calendar-day"></i>
</span>
<input type="date" class="form-control" name="Desde" id="vigencia" value="{{old('Desde')}}">
</div>
</div>
<div class="col-md-3">
<label for="Hasta">Hasta.</label>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="fas fa-calendar-day"></i>
</span>
<input type="date" class="form-control" name="Hasta" id="vigencia2" value="{{old('Hasta')}}">
</div>
</div>
</div>
<div class="row mtop16">
<div class="col-md-4">
<label for="Categoria">Categoría.</label>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="fas fa-calendar-day"></i>
</span>
<select disabled class="form-select" name="categoria" id="categoria">
<input type="hidden" name="CategoriaActual" id="CategoriaActual" value="0">
</select>
</div>
</div>
<div class="col-md-4">
<label for="correo">Correo.</label>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="fas fa-envelope"></i>
</span>
<select disabled class="form-select" name="correo" id="correo">
<input type="hidden" name="CorreoActual" id="CorreoActual" value="0">
</select>
</div>
</div>
<div class="col-md-4">
<label for="Telefono">Teléfono.</label>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="fas fa-phone-alt"></i>
</span>
<select disabled class="form-select" name="telefono" id="telefono">
<input type="hidden" name="TelefonoActual" id="TelefonoActual" value="0">
</select>
</div>
</div>
</div>
<div class="row mtop16">
<div class="col-md-4">
<label for="Curso">Escoja el curso.</label>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="fas fa-book"></i>
</span>
<select required class="form-select" name="curso" id="curso">
<option selected value="0">Seleccione</option>
@foreach ($curso as $cursos)
<option value={{$cursos->IDCurso}}>{{$cursos->Codigo}} | {{$cursos->Nombre}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-3">
<label for="Tipo">I/C.</label>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="fas fa-book"></i>
</span>
<select required class="form-select" name="Tipo" id="Tipo">
<option selected value="0">Seleccione</option>
@foreach (obtenerTipoDeCurso() as $Tipo=>$id)
<option value="{{$id}}">{{$Tipo}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-1">
<label for="Tutoria">Tutoría.</label>
<div class="input-group mb-3">
<input class="ms-3 mt-3" name="Tutoria" id="Tutoria" type="checkbox" value="0">
</div>
</div>
<div class="col-md-3">
<label for="CargaAcademica">Carga Académica.</label>
<div class="input-group mb-3">
<span class="input-group-text">
<i class="fas fa-book"></i>
</span>
<select required class="form-select" name="CargaAcademica" id="CargaAcademica">
<option selected value="0">Seleccione</option>
@foreach (ObtenerCargaAcademica() as $CargaAcademica=>$id)
<option value="{{$id}}">{{$CargaAcademica}}</option>
@endforeach
</select>
</div>
</div>
<div class="col-md-1 mtop16">
<a onclick='AgregarCursoDocente()' class="btn btn-plus">
<i class="fas fa-plus-square fs-2"></i>
</a>
</div>
</div>
<div class="row mtop16" id="CursoDocente">
</div>
</div>
<div class="row ">
<div class="col-md-12">
<button type="submit" class="mtop16 btn btn-success" id="BtnRegistrar">Guardar</button>
</div>
</div>
</form>
控制器功能
public function postAñadirNombramiento(Request $request)
{
return $request; //Here im trying to capture the data
}
有人知道我为什么没有收到任何东西吗?还是有任何其他方法可以发送表单输入和用 Javascript 创建的对象数组?
【问题讨论】:
-
你怎么知道你没有收到任何东西?您在控制器中所做的就是将您的请求返回给 ajax,而在您的 ajax 中,您只是在写“完成”。您是否检查过“网络”选项卡以查看返回的内容?您是否尝试对控制器函数中的请求执行其他操作?
-
因为我可以通过 return 或 dd() 在控制器上看到数据,并且如果我尝试重定向到另一个站点或类似站点(不使用请求)没有工作,例如当我按下提交控制器将我重定向到另一个站点但没有工作
标签: javascript php jquery ajax laravel