duanpao4522
duanpao4522
2016-03-08 14:56
浏览 101
已采纳

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

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.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • douke6881
    douke6881 2016-03-08 15:07
    已采纳

    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.

    点赞 评论
  • douma5954
    douma5954 2016-03-08 15:03

    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.

    点赞 评论

相关推荐