laravel在按钮单击时写入mysql数据库

时间:2016-03-08 14:56:26

标签: php html mysql laravel blade

当我的一个页面加载时,我当前能够将数据写入mysql。这是我控制器中的代码。

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");
 }

所以我想通过我的刀片文件在按钮点击时调用此功能,但我一直在努力这样做。这是带有按钮的刀片文件。

<!DOCTYPE html>
 <html>
<head> </head>

<body> This should  </body>
<br><br><br><br>
<form method="post">
<button type="button"> submit </button>
</form>
</html>

基于谷歌搜索,我知道我可以使用ajax来帮助我解决这个问题,但我相信只需使用html post方法就可以做到这一点。我想尝试第二种方式,没有ajax。

2 个答案:

答案 0 :(得分:1)

我建议您使用RESTful控制器并在不使用ajax的情况下对其进行测试。从学习Routesstore开始:

https://laravel.com/docs/5.1/controllers#restful-resource-controllers https://laravel.com/docs/5.1/routing

您只需创建RESTful控制器并使用{!! 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')) !!} 方法将数据存储在数据库中。例如:

$(window).load(function(){
$(document).ready(function() {
...

当您测试所有内容时,如果您不想在每次将数据存储到数据库时重新加载页面,请使用AJAX。

答案 1 :(得分:1)

如果您不使用ajax,则需要使用action属性指定表单的位置,仅使用method就不足以执行此操作。< / p>

查看

<form action="{{ route('signup') }}" method="post">
    <button type="submit"> submit </button>
</form>

<强> routes.php文件

Route::post('/signup', [
    'as'   => 'signup',
    'uses' => 'YourController@manuelSignUP',
]);

此外,通常您应该使用表单输入数据,而不是硬编码。