2016-03-08 4 views
1

В настоящее время я могу записать данные в mysql, когда загружается одна из моих страниц. Вот код для этого в моем контроллере.laravel написать в базу данных 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> 

на основе Google поиск Я знаю, что я могу использовать Ajax, чтобы помочь мне с этой проблемой, но я думаю, что есть способ сделать это только с помощью методов HTML пост. Я пытаюсь сделать это вторым способом, без аякса.

+0

Если вы 're new to laravel попробуйте следовать этой серии: https://laracasts.com/series/laravel-5-from-scratch – haakym

ответ

1

Если вы не используете ajax, вам нужно указать, где должна быть ваша форма с атрибутом action, этого недостаточно для использования только с method.

вид

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

routes.php

Route::post('/signup', [ 
    'as' => 'signup', 
    'uses' => '[email protected]', 
]); 

Кроме того, как правило, вы должны использовать форму для ввода данных в, а не жесткий код его.

+0

Я попробовал ваше предложение, а это то, что у меня есть в файле blade.php.

Я также добавил это в файл маршрута Route :: post ("signup" [ "as" => "signup", "uses" => "tableController @ signup"]); и создал функцию, называемую «signup» в моем TableController. К сожалению, ничего не происходит, когда я нажимаю кнопку, никакие данные не добавляются в мою таблицу mysql. – ray

+0

'' – haakym

+0

, если это тип 'button', он не отправит форму – haakym

1

Я бы рекомендовал использовать контроллеры RESTful и протестировать его, не используя сначала ajax. Начните с изучения RESTful controllers и Routes:

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

Все, что вам нужно, это создать RESTful контроллер и использовать store метод для хранения данных в БД. Например:

{!! Form::model($data, array('action' => '[email protected]') !!} 
{!! Form::text('name', null, array('required', 'class'=>'form-control', 'placeholder'=>'Name')) !!} 
{!! Form::submit('Create and store in DB', array('class'=>'btn btn-success')) !!} 

Когда вы будете тестировать все, просто использовать AJAX, если вы не хотите, чтобы перезагрузить страницу каждый раз, когда вы хранить данные в БД.

+0

Как вы знаете, что он использует коллектив laravel Forms & HTML – haakym

+0

Это просто самый простой пример для новичка, он должен начинать откуда-то, чтобы понять, как он работает. Да, Laravel Collective - это другой пакет, но он долгое время был частью Laravel, и большинство ребята будут использовать его в любом случае. Так почему бы не? –

+0

Конечно, я думаю, что его вопрос не помечен как 4.2, поэтому вы можете предположить, что он не использует его, если использует текущую версию Laravel. Если вы собираетесь отвечать с помощью кода, который опирается на дополнительный пакет, я не думаю, что было бы больно упоминать об этом или указать, как его установить. – haakym

Смежные вопросы