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

Posted

技术标签:

【中文标题】laravel 在按钮单击时写入 mysql 数据库【英文标题】:laravel write to mysql database on button click 【发布时间】:2016-06-22 14:14:10 【问题描述】:

当我的一个页面加载时,我目前能够将数据写入 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。

【问题讨论】:

如果您是 laravel 新手,请尝试关注本系列:laracasts.com/series/laravel-5-from-scratch 【参考方案1】:

如果您不使用 ajax,则需要使用 action 属性指定表单的位置,仅使用 method 是不够的。

查看

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

routes.php

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

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

【讨论】:

我也试过你的建议,这就是我在blade.php文件中的内容。
我也在路由文件中添加了这个 Route:: post("signup ", [ "as" => "signup", "uses" => "tableController@signup"]);并在我的 tableController 中创建了一个名为“signup”的函数。不幸的是,当我点击按钮时没有任何反应,没有数据添加到我的 mysql 表中。
&lt;button type="submit"&gt; submit &lt;/button&gt; 如果是button,则不会提交表单【参考方案2】:

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

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

您只需要创建 RESTful 控制器并使用store 方法将您的数据存储在数据库中。例如:

!! 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')) !!

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

【讨论】:

你怎么知道他在使用 laravel 集体表单和 HTML 这只是一个新手最简单的例子,他应该从某个地方开始了解它是如何工作的。是的,Laravel Collective 现在是一个不同的包,但它长期以来一直是 Laravel 的一部分,而且大多数人都会使用它。那为什么不呢? 当然,我认为他的问题没有被标记为 4.2,所以如果他使用的是当前版本的 Laravel,你可以假设他没有使用它。如果您要使用依赖于附加包的代码来回答,我认为提及它或参考如何安装它不会有什么坏处。 我正在使用表单 &HTML 。我花了一段时间,但我完成了那部分 @ray,太好了,在这种情况下,您将更容易理解存储在 DB 中的工作原理。

以上是关于laravel 在按钮单击时写入 mysql 数据库的主要内容,如果未能解决你的问题,请参考以下文章

从数据库中获取值并在 Laravel 中单击按钮时以表单形式显示它

单击按钮时附加新文本字段并通过单击 Laravel 4 中的按钮删除

Laravel:单击按钮时更新列的值

Laravel 和 Livewire 在单击时更改按钮样式

Laravel 5,单击表单提交按钮时不显示任何内容

当我按下表格中的按钮时如何设置输入值?这里我使用 laravel 5.8