Я сделал регистрационную форму с большим количеством полей. Поскольку, когда я отправляю данные, а валидатор перенаправляет обратно с ошибками, некоторые входы пустые, и пользователь должен потерять время, заправляя их, я хочу реализовать некоторые проверки переднего плана. Я застрял в проверке, если имя пользователя уже используется при отправке кнопки, нажмите becasuse. Я не эксперт в AJAX.Laravel - Проверьте, существует ли имя пользователя перед отправкой формы с помощью jQuery AJAX
В AuthController я создал функцию, которая возвращает Json, содержащий ответ в связи с существованием или отсутствием имени пользователя в базе данных.
class UserAuthController extends Controller
{
public function isUserNameInUse($username)
{
if (Auth::where('username', $username) != null){
return [ 'is_used' => 1 ];
}
return [ 'is_used' => 0 ];
}
}
В routes.php есть такие строки:
Route::group([ 'as' => 'api', 'prefix' => 'api', 'namespace' => 'Api'], function() {
Route::group([ 'as' => 'auth', 'prefix' => 'auth'], function() {
Route::any('/is_username_in_use/{username}', [
'as' => 'isUserNameInUse',
'uses' => '[email protected]']);
});
});
мнение, как, что (только часть формы):
<form action="{{ route('web.company.postSignup') }}" method="post" id="signup-form" class="form-horizontal">
{!! csrf_field() !!}
@include('errors.handler')
<label for="username">
{{ _('Username*') }} </label>
<input type="text" class="form-control" name="username" id="username"
value="{{ Input::old('username') }}" required>
<label for="password">
{{ _('Password*') }}
</label>
<input type="password" class="form-control" name="password" id="password"
value="{{ Input::old('password') }}" onchange="form.confirmPassword.pattern = this.value;"
required>
<label for="confirmPassword">
{{ _('Confirm Password*') }}
</label>
<input type="password" class="form-control" name="confirmPassword" id="confirmPassword" required>
<button class="btn btn-warning" id="submit-btn" type="submit">{{ _('Sign Up') }}</button>
</form>
Это сценарий, пока я только пытался зарегистрировать ответ контроллера, но он печатает что угодно.
$(document).ready(function() {
$('form#signup-form').submit(function() {
var input_username = $('input[name=username]').val();
console.log(input_username);
$.getJSON('/api/auth/is_username_in_use/' + input_username, function (json) {
console.log(json);
});
return false;
});
});
Laravel не является PHP. PHP используется в Laravel. –
@ 3.14159265358 ... Laravel - это PHP-фреймворк, клинок - это шаблонный движок (известный как препроцессор php), используемый с laravel. Я не уверен, что вы думаете. –
Вероятно, есть встроенный способ сделать это в Laravel, но вы должны хранить переменные формы в запросе и автоматически пополнять форму, когда страница перезагружается. –