I have 2 dropdownlists on my site in Laravel, inside a form which is redirected to a route. When selecting a value in both dropdownlist and when submitting the form, I get the following error.
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException
No message
I leave the code of the form.
<form action="{{route('filtro.ciudad', Auth::user()->id)}}" method="POST">
<select id="regiones" class="select_region" required="required" name="regiones"></select>
<select id="comunas" class="select_ciudad" required="required" name="comunas"></select>
<div class="div_filtro">
@foreach($complejos as $comp)
@if(Auth::user()->complejo_id == $comp->id)
<input type="text" style="display: none;" value="Auth::user()->complejo_id" id="user_complejo">
<input type="text" style="display: none;" value="$comp->id" id="complejo_id">
<input type="text" value="{{$comp->comuna}}" style="display: none;" id="complejo_comuna">
<input class="btn_ciudad" title="SE USARÁ SU CIUDAD PREDETERMINADA" value="Filtrar por ciudad" type="submit" id="btnciudad">
@endif
@endforeach
</div>
</form>
And the route.
Route::get('reservar', ['as'=>'filtro.ciudad','uses' => 'ReservasController@filtroCiudad']);
And finally I leave the function of my controller in which I am building my validation.
public function filtroCiudad(Request $request){
$city = ComplejosNew::all();
$usr = User::all();
try {
foreach ($usr as $usr ) {
foreach ($city as $city) {
if ($usr->id == Auth::user()->id)
$city->comuna = $request->comunas;
return view('reservas-cancha')->with('user', $usr)->with('complejo', $city);
}
}
} catch (\Illuminate\Database\QueryException $e) {
Session::flash('error', 'Su búsqueda no coincide con nuestros registros');
return view('reservas-cancha')->with('user', $usr)->with('complejo', $city);
}
}
I also leave the following snippet to show how the dropdownlist should work for me.
var RegionesYcomunas = {
"regiones": [{
"NombreRegion": "Region de Arica y Parinacota",
"comunas": ["Arica", "Camarones", "Putre", "General Lagos"]
},
{
"NombreRegion": "Region de Tarapacá",
"comunas": ["Iquique", "Alto Hospicio", "Pozo Almonte", "Camiña", "Colchane", "Huara", "Pica"]
},
{
"NombreRegion": "Region de Antofagasta",
"comunas": ["Antofagasta", "Mejillones", "Sierra Gorda", "Taltal", "Calama", "Ollagüe", "San Pedro de Atacama", "Tocopilla", "María Elena"]
},
{
"NombreRegion": "Region de Atacama",
"comunas": ["Copiapó", "Caldera", "Tierra Amarilla", "Chañaral", "Diego de Almagro", "Vallenar", "Alto del Carmen", "Freirina", "Huasco"]
},
{
"NombreRegion": "Region de Coquimbo",
"comunas": ["La Serena", "Coquimbo", "Andacollo", "La Higuera", "Paiguano", "Vicuña", "Illapel", "Canela", "Los Vilos", "Salamanca", "Ovalle", "Combarbalá", "Monte Patria", "Punitaqui", "Río Hurtado"]
},
{
"NombreRegion": "Region de Valparaíso",
"comunas": ["Valparaíso", "Casablanca", "Concón", "Juan Fernández", "Puchuncaví", "Quintero", "Viña del Mar", "Isla de Pascua", "Los Andes", "Calle Larga", "Rinconada", "San Esteban", "La Ligua", "Cabildo", "Papudo", "Petorca", "Zapallar", "Quillota", "Calera", "Hijuelas", "La Cruz", "Nogales", "San Antonio", "Algarrobo", "Cartagena", "El Quisco", "El Tabo", "Santo Domingo", "San Felipe", "Catemu", "Llaillay", "Panquehue", "Putaendo", "Santa María", "Quilpué", "Limache", "Olmué", "Villa Alemana"]
},
{
"NombreRegion": "Región del Libertador Gral. Bernardo O’Higgins",
"comunas": ["Rancagua", "Codegua", "Coinco", "Coltauco", "Doñihue", "Graneros", "Las Cabras", "Machalí", "Malloa", "Mostazal", "Olivar", "Peumo", "Pichidegua", "Quinta de Tilcoco", "Rengo", "Requínoa", "San Vicente", "Pichilemu", "La Estrella", "Litueche", "Marchihue", "Navidad", "Paredones", "San Fernando", "Chépica", "Chimbarongo", "Lolol", "Nancagua", "Palmilla", "Peralillo", "Placilla", "Pumanque", "Santa Cruz"]
},
{
"NombreRegion": "Región del Maule",
"comunas": ["Talca", "ConsVtución", "Curepto", "Empedrado", "Maule", "Pelarco", "Pencahue", "Río Claro", "San Clemente", "San Rafael", "Cauquenes", "Chanco", "Pelluhue", "Curicó", "Hualañé", "Licantén", "Molina", "Rauco", "Romeral", "Sagrada Familia", "Teno", "Vichuquén", "Linares", "Colbún", "Longaví", "Parral", "ReVro", "San Javier", "Villa Alegre", "Yerbas Buenas"]
},
{
"NombreRegion": "Región del Biobío",
"comunas": ["Concepción", "Coronel", "Chiguayante", "Florida", "Hualqui", "Lota", "Penco", "San Pedro de la Paz", "Santa Juana", "Talcahuano", "Tomé", "Hualpén", "Lebu", "Arauco", "Cañete", "Contulmo", "Curanilahue", "Los Álamos", "Tirúa", "Los Ángeles", "Antuco", "Cabrero", "Laja", "Mulchén", "Nacimiento", "Negrete", "Quilaco", "Quilleco", "San Rosendo", "Santa Bárbara", "Tucapel", "Yumbel", "Alto Biobío", "Chillán", "Bulnes", "Cobquecura", "Coelemu", "Coihueco", "Chillán Viejo", "El Carmen", "Ninhue", "Ñiquén", "Pemuco", "Pinto", "Portezuelo", "Quillón", "Quirihue", "Ránquil", "San Carlos", "San Fabián", "San Ignacio", "San Nicolás", "Treguaco", "Yungay"]
},
{
"NombreRegion": "Región de la Araucanía",
"comunas": ["Temuco", "Carahue", "Cunco", "Curarrehue", "Freire", "Galvarino", "Gorbea", "Lautaro", "Loncoche", "Melipeuco", "Nueva Imperial", "Padre las Casas", "Perquenco", "Pitrufquén", "Pucón", "Saavedra", "Teodoro Schmidt", "Toltén", "Vilcún", "Villarrica", "Cholchol", "Angol", "Collipulli", "Curacautín", "Ercilla", "Lonquimay", "Los Sauces", "Lumaco", "Purén", "Renaico", "Traiguén", "Victoria", ]
},
{
"NombreRegion": "Región de Los Ríos",
"comunas": ["Valdivia", "Corral", "Lanco", "Los Lagos", "Máfil", "Mariquina", "Paillaco", "Panguipulli", "La Unión", "Futrono", "Lago Ranco", "Río Bueno"]
},
{
"NombreRegion": "Región de Los Lagos",
"comunas": ["Puerto Montt", "Calbuco", "Cochamó", "Fresia", "FruVllar", "Los Muermos", "Llanquihue", "Maullín", "Puerto Varas", "Castro", "Ancud", "Chonchi", "Curaco de Vélez", "Dalcahue", "Puqueldón", "Queilén", "Quellón", "Quemchi", "Quinchao", "Osorno", "Puerto Octay", "Purranque", "Puyehue", "Río Negro", "San Juan de la Costa", "San Pablo", "Chaitén", "Futaleufú", "Hualaihué", "Palena"]
},
{
"NombreRegion": "Región Aisén del Gral. Carlos Ibáñez del Campo",
"comunas": ["Coihaique", "Lago Verde", "Aisén", "Cisnes", "Guaitecas", "Cochrane", "O’Higgins", "Tortel", "Chile Chico", "Río Ibáñez"]
},
{
"NombreRegion": "Región de Magallanes y de la Antártida Chilena",
"comunas": ["Punta Arenas", "Laguna Blanca", "Río Verde", "San Gregorio", "Cabo de Hornos (Ex Navarino)", "AntárVca", "Porvenir", "Primavera", "Timaukel", "Natales", "Torres del Paine"]
},
{
"NombreRegion": "Región Metropolitana de Santiago",
"comunas": ["Cerrillos", "Cerro Navia", "Conchalí", "El Bosque", "Estación Central", "Huechuraba", "Independencia", "La Cisterna", "La Florida", "La Granja", "La Pintana", "La Reina", "Las Condes", "Lo Barnechea", "Lo Espejo", "Lo Prado", "Macul", "Maipú", "Ñuñoa", "Pedro Aguirre Cerda", "Peñalolén", "Providencia", "Pudahuel", "Quilicura", "Quinta Normal", "Recoleta", "Renca", "San Joaquín", "San Miguel", "San Ramón", "Vitacura", "Puente Alto", "Pirque", "San José de Maipo", "Colina", "Lampa", "TilVl", "San Bernardo", "Buin", "Calera de Tango", "Paine", "Melipilla", "Alhué", "Curacaví", "María Pinto", "San Pedro", "Talagante", "El Monte", "Isla de Maipo", "Padre Hurtado", "Peñaflor"]
}]
}
jQuery(document).ready(function () {
var iRegion = 0;
var htmlRegion = '<option value=" ">Seleccione región</option><option value="sin-region">--</option>';
var htmlComunas = '<option value=" ">Seleccione comuna</option><option value="sin-region">--</option>';
jQuery.each(RegionesYcomunas.regiones, function () {
htmlRegion = htmlRegion + '<option value="' + RegionesYcomunas.regiones[iRegion].NombreRegion + '">' + RegionesYcomunas.regiones[iRegion].NombreRegion + '</option>';
iRegion++;
});
jQuery('#regiones').html(htmlRegion);
jQuery('#comunas').html(htmlComunas);
jQuery('#regiones').change(function () {
var iRegiones = 0;
var valorRegion = jQuery(this).val();
var htmlComuna = '<option value=" ">Seleccione comuna</option><option value="sin-comuna">--</option>';
jQuery.each(RegionesYcomunas.regiones, function () {
if (RegionesYcomunas.regiones[iRegiones].NombreRegion == valorRegion){
var iComunas = 0;
jQuery.each(RegionesYcomunas.regiones[iRegiones].comunas, function(){
htmlComuna = htmlComuna + '<option value="' + RegionesYcomunas.regiones[iRegiones].comunas[iComunas] + '">' + RegionesYcomunas.regiones[iRegiones].comunas[iComunas] + '</option>';
iComunas++;
});
}
iRegiones++;
});
jQuery('#comunas').html(htmlComuna);
});
if($('#regiones').val() == ' '){
$('#tr_1').show();
$('#tr_2').show();
$('#tr_3').show();
$('#tr_4').show();
$('#tr_5').show();
$('#tr_6').hide();
}
});
$(document).on('click', '.detalle', function(){
if($('#regiones').val() == ' '){
$('#regiones').focus();
alert('Debe seleccionar una region y luego una comuna.');
return false;
}else if($('#comunas').val() == ' '){
$('#comunas').focus();
alert('Debe seleccionar una comuna.');
}
if($('#regiones').val() == 'Region de Valparaíso' && $('#comunas').val() == 'Viña del Mar'){
$('#tr_2').hide();
$('#tr_3').hide();
$('#tr_4').hide();
$('#tr_5').hide();
$('#tr_1').show();
$('#tr_6').hide();
}else if($('#regiones').val() == 'Región Metropolitana de Santiago' && $('#comunas').val() == 'Cerrillos'){
$('#tr_1').hide();
$('#tr_5').hide();
$('#tr_3').hide();
$('#tr_4').hide();
$('#tr_2').show();
$('#tr_6').hide();
}else if($('#regiones').val() == 'Región del Biobío' && $('#comunas').val() == 'Concepción'){
$('#tr_2').hide();
$('#tr_4').hide();
$('#tr_5').hide();
$('#tr_1').hide();
$('#tr_3').show();
$('#tr_6').hide();
}else if($('#regiones').val() == 'Region de Arica y Parinacota' && $('#comunas').val() == 'Arica'){
$('#tr_1').hide();
$('#tr_2').hide();
$('#tr_3').hide();
$('#tr_5').hide();
$('#tr_4').show();
$('#tr_6').hide();
}else if($('#regiones').val() == 'Región del Libertador Gral. Bernardo O’Higgins' && $('#comunas').val() == 'Rancagua'){
$('#tr_1').hide();
$('#tr_2').hide();
$('#tr_3').hide();
$('#tr_4').hide();
$('#tr_5').show();
$('#tr_6').hide();
}else if($('#regiones').val() != '' && $('#comunas').val() != ''){
$('#tr_1').hide();
$('#tr_2').hide();
$('#tr_3').hide();
$('#tr_4').hide();
$('#tr_5').hide();
$('#tr_6').show();
}
});
body{
font-family: 'Comic Sans MS';
user-select: none !important;
}
button{
font-family: 'Comic Sans MS';
}
input{
font-family: 'Comic Sans MS';
}
table{
text-align: center;
font-size: 12pt;
}
#regiones{
border-style: solid;
border-width: 2px;
border-color: black;
font-family: 'Comic Sans MS';
transition-duration: 0.5s;
border-radius: 5px;
outline-style: none !important;
}
#comunas{
border-style: solid;
border-width: 2px;
border-color: black;
font-family: 'Comic Sans MS';
transition-duration: 0.5s;
border-radius: 5px;
outline-style: none !important;
}
#regiones:focus{
border-color: blue;
transition-duration: 0.5s;
}
#comunas:focus{
border-color: red;
transition-duration: 0.5s;
}
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.3.0/jquery-confirm.min.js"></script>
<meta charset="utf-8">
</head>
<body>
<label>Complejos Deportivos</label>
<br><br>
<select id="regiones" class="select_region" required="required" name="regiones"></select>
<select id="comunas" class="select_ciudad" required="required" name="comunas"></select>
<br><br>
<input type="button" id="btn" class="detalle" value="FILTRAR POR CIUDAD" data-descripcion="Esta es una descripción"/>
<br><br>
<table border="1" style="width: 100%;" id="table">
<tr>
<td> Ciudad </td>
<td> Region</td>
<td> Descripcion </td>
<td> Detalle </td>
<td>Complejo</td>
</tr>
<!--BODY TABLE-->
<tr id="tr_1">
<td id="city">Viña del Mar</td>
<td id="reg">Region de Valparaiso</td>
<td id="desc"></td>
<td id="det"> <button>DETALLE</button> </td>
<td id="comp">Complejo Viña<td>
</tr>
<tr id="tr_2">
<td id="city_2">Cerrillos</td>
<td id="reg_2">Region Metropolitana de Santiago</td>
<td id="desc_2"></td>
<td id="det_2"> <button>DETALLE</button> </td>
<td id="comp_2">Complejo Santiago<td>
</tr>
<tr id="tr_3">
<td id="city_3">Concepción</td>
<td id="reg_3">Region del Biobío</td>
<td id="desc_3"></td>
<td id="det_3"> <button>DETALLE</button> </td>
<td id="comp_3">Complejo Concepción<td>
</tr>
<tr id="tr_4">
<td id="city_4">Arica</td>
<td id="reg_4">Region de Arica y Parinacota</td>
<td id="desc_4"></td>
<td id="det_4"> <button>DETALLE</button> </td>
<td id="comp_4">Complejo Arica<td>
</tr>
<tr id="tr_5">
<td id="city_5">Rancagua</td>
<td id="reg_5">Región del Libertador Gral. Bernardo O’Higgins</td>
<td id="desc_5"></td>
<td id="det_5"> <button>DETALLE</button> </td>
<td id="comp_5">Complejo Rancagua<td>
</tr>
<tr id="tr_6" style="display: none; border: 0px; ">
<td>NO</td>
<td>SE</td>
<td>ENCONTRO</td>
<td>SU</td>
<td>CIUDAD :( </td>
</tr>
</table>
</body>
That's because you put the method
get
in the route instead ofpost
:Bad :
good :