I am currently able to write data to mysql when one of my pages loads. Here is the code for this in my controller.
public function manuelSignUP()
{
DB :: table("users") -> insertGetId
(
array("firstname" => "John", "lastname"=> "John",
"passwordHash" => "password", "userslevelID" => 2)
);
DB :: table("userlevel") -> insertGetID
(
array("userlevelID" => $userlevelID, "name" => $name)
);
return view("pages.manualsignup");
}
So I would like to call this function through my blade file on a button click, but I have been struggling to do so. Here is my blade file with the button.
<!DOCTYPE html>
<html>
<head> </head>
<body> This should </body>
<br><br><br><br>
<form method="post">
<button type="button"> submit </button>
</form>
</html>
Based on google searching I know that I can use ajax to help me with this problem, but I believe there is way to do it by just using html post methods. I am trying to do it the second way, without ajax.
If you're not using ajax you need to specify where your form should go with the action
attribute, it's not sufficient to do it with the method
alone.
view
<form action="{{ route('signup') }}" method="post">
<button type="submit"> submit </button>
</form>
routes.php
Route::post('/signup', [
'as' => 'signup',
'uses' => 'YourController@manuelSignUP',
]);
Also, normally you should use a form to input data into, not hard code it in.
I'd recommend you to use RESTful controllers and test it without using ajax first. Start from learning RESTful controllers
and Routes
:
https://laravel.com/docs/5.1/controllers#restful-resource-controllers https://laravel.com/docs/5.1/routing
All you need is to create RESTful controller and use store
method to store your your data in DB. For example:
{!! Form::model($data, array('action' => 'MyController@store') !!}
{!! Form::text('name', null, array('required', 'class'=>'form-control', 'placeholder'=>'Name')) !!}
{!! Form::submit('Create and store in DB', array('class'=>'btn btn-success')) !!}
When you'll test everything, just use AJAX if you don't want to reload page every time you store the data in DB.