Move this route above the resource for cablelists. Your resource is catching it, it seems
Route::post('Kabelliste/insert', 'CablelistsController@insert')->name('cablelists.insert');
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
I have problems with a route and get the message "The POST method is not supported for this route. Supported methods: GET, HEAD."
My Controller:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Cablelist;
use App\Cablename;
use App\Cabletyp;
use App\Ordernumber;
use App\Typeofmachine;
use Auth;
use Redirect;
use PDF;
use DB;
class CablelistsController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
//
$data['cablelists'] = Cablelist::orderBy('idcablelists','desc')->paginate(10);
$cablenames = Cablename::with('cablelist')->select('idcablenames', DB::raw
("CONCAT('IndNr: ',IndNr,', ', 'Kabel: ', cablenamescol,', ', numberofcores)
AS full_cablename"))->get();
return view('cablelist.list',$data)->with('cablenames', $cablenames);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
}
function dynamic_field()
{
$cablenames = Cablename::with('cablelist')->select('idcablenames', DB::raw
("CONCAT('IndNr: ',IndNr,', ', 'Kabel: ', cablenamescol,', ', numberofcores)
AS full_cablename"))->get();
return view('cablelist.dynamiccreate')->with('cablenames', $cablenames);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
function insert(Request $request)
{
{
if($request->ajax())
{
$rules = array(
'cablelistscol*'=> 'required',
'cablename_id.*' => 'required',
'lengh.*' => 'required'
);
$error = Validator::make($request->all(), $rules);
if($error->fails())
{
return response()->json([
'error' => $error->errors()->all()
]);
}
$cablelistscol= $request->cablelistscol;
$cablename_id= $request->cablename_id;
$lengh = $request->lengh;
for($count = 0; $count < count($first_name); $count++)
{
$cablenames = Cablename::with('cablelist')->select('idcablenames', DB::raw
("CONCAT('IndNr: ',IndNr,', ', 'Kabel: ', cablenamescol,', ', numberofcores)
AS full_cablename"))->get();
$data = array(
'cablelistscol' => $cablelistscol[$count],
'cablename_id' => $cablename_id[$count],
'lengh' => $lengh[$count],
);
$insert_data[] = $data;
}
DynamicField::insert($insert_data);
return response()->json([
'success' => 'Data Added successfully.'
]);
}
}
}
.
.
.
Here is some more not important code.
.
.
.
}
My View:
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel 5.8 - DataTables Server Side Processing using Ajax</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<br />
<h3 align="center">Kabelliste 2.0</h3>
<br />
<div class="text-right">
<a href="{{ url('/cablelists') }}" class="btn btn-success mb-2">Kabelliste</a>
<a href="{{ url('/home') }}" class="btn btn-success mb-2">Home</a>
</div>
<h3 align="center">Testkabel</h3>
<div class="table-responsive">
<form method="post" id="cablelists_info">
<span id="result"></span>
<table class="table table-bordered table-striped" id="cablelists">
<thead>
<tr>
<?php /* <th>idcablelists</th>*/?>
<th>cablelistscol</th>
<th>cablename_id</th>
<th>lengh</th>
<?php /*<th>typeofmachine_id</th>*/?>
<?php /*<th>Erstellt am:</th> */?>
<th>Action</th>
</tr>
</thead>
<tbody>
</tbody>
<tfoot>
<tr>
<td colspan="3" align="right"> </td>
<td>
@csrf
<input type="submit" name="save" id="save" class="btn btn-primary" value="Save" />
</td>
</tr>
</tfoot>
</table>
</form>
</div>
</div>
</body>
</html>
<script>
$(document).ready(function(){
var count = 1;
dynamic_field(count);
function dynamic_field(number)
<?php /**/?>
{
html = '<tr>';
html += '<td><input type="text" name="cablelistscol[]" class="form-control" /></td>';
<?php /* cablename_id has to be one row */?>
html += '<td><select class="form-control" id="cablename_id" name="cablename_id[]"><option value=""> -- Wähle einen Kabelnamen aus. --</option>@foreach($cablenames as $cablename)<option value="{{$cablename->idcablenames}}">{{$cablename->full_cablename}}</option>@endforeach<span class="text-danger">{{ $errors->first('cablename_id') }}</span></select></td>';
html += '<td><input type="text" name="lengh[]" class="form-control lengh" /></td>';
if(number > 1)
{
html += '<td><button type="button" name="remove" id="" class="btn btn-danger remove">Remove</button></td></tr>';
$('tbody').append(html);
}
else
{
html += '<td><button type="button" name="add" id="add" class="btn btn-success">Add</button></td></tr>';
$('tbody').html(html);
}
}
$(document).on('click', '#add', function(){
count++;
dynamic_field(count);
});
$(document).on('click', '.remove', function(){
count--;
$(this).closest("tr").remove();
});
$('#dynamic_form').on('submit', function(event){
event.preventDefault();
$.ajax({
url:'{{ route("cablelists.insert") }}',
method:'post',
data:$(this).serialize(),
dataType:'json',
beforeSend:function(){
$('#save').attr('disabled','disabled');
},
success:function(data)
{
if(data.error)
{
var error_html = '';
for(var count = 0; count < data.error.length; count++)
{
error_html += '<p>'+data.error[count]+'</p>';
}
$('#result').html('<div class="alert alert-danger">'+error_html+'</div>');
}
else
{
dynamic_field(1);
$('#result').html('<div class="alert alert-success">'+data.success+'</div>');
}
$('#save').attr('disabled', false);
}
})
});
});
</script>
I have problems with the Route::post('Kabelliste/insert', 'CablelistsController@insert')->name('cablelists.insert'); My Routes:
<?php
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
Auth::routes();
Route::resource('cabletyps', 'CabletypController');
Route::resource('cablenames', 'CablenamesController');
Route::resource('cablelists', 'CablelistsController');
Route::resource('typeofmachines', 'TypeofmachinesController');
Route::resource('ordernumbers', 'OrdernumbersController');
Route::get('Kabelliste', 'CablelistsController@dynamic_field')->name('cablelists.dynamic_field');
Route::post('Kabelliste/insert', 'CablelistsController@insert')->name('cablelists.insert');
C:\xampp\htdocs\KautexCabellist>php artisan rout:list
+--------+-----------+-------------------------------------+--------------------------+------------------------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-------------------------------------+--------------------------+------------------------------------------------------------------------+--------------+
| | GET|HEAD | / | | Closure | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | POST | cablelists | cablelists.store | App\Http\Controllers\CablelistsController@store | web |
| | GET|HEAD | cablelists | cablelists.index | App\Http\Controllers\CablelistsController@index | web |
| | GET|HEAD | cablelists/create | cablelists.create | App\Http\Controllers\CablelistsController@create | web |
| | DELETE | cablelists/{cablelist} | cablelists.destroy | App\Http\Controllers\CablelistsController@destroy | web |
| | PUT|PATCH | cablelists/{cablelist} | cablelists.update | App\Http\Controllers\CablelistsController@update | web |
| | GET|HEAD | cablelists/{cablelist} | cablelists.show | App\Http\Controllers\CablelistsController@show | web |
| | GET|HEAD | cablelists/{cablelist}/edit | cablelists.edit | App\Http\Controllers\CablelistsController@edit | web |
| | GET|HEAD | cablenames | cablenames.index | App\Http\Controllers\CablenamesController@index | web
save button does nothing
open the browser development tools and switch to network tab.
Hit the save button. Is a request sent to the server? Is the URL what you expected? Does the request contain the form data? You should be proficient in using this tool if you want to develop for the web.
Please or to participate in this conversation.