У меня есть форма для ввода пользователем некоторых данных, номера НДС и страны.Когда пользователь вводит некоторые данные и нажимает на «Перейти к шагу 2», делается ajax-запрос к методу store (), и здесь должен быть проверен номер НДС на основе выбранной страны.
Но это не работает, "dd($request->country);
" показывает ноль.Знаете ли вы, почему?
HTML:
<form method="post" id="step1" action="">
...
<div class="form-group font-size-sm">
<select class="form-control" name="country" id="country">
@foreach($countries as $country)
<option value="">{{$country}}</option>
@endforeach
</select>
</div>
<div class="form-group font-size-sm">
<label for="vat"
class="text-gray">VAT</label>
<input type="text" id="vat"
name="vat"
class="form-control" value="">
</div>
...
</form>
// store () метод
public function store(Request $request, $id, $slug = null, Validator $validator){
...
$rules = [];
foreach ($request->question_required as $key => $value) {
$rule = 'string|max:255';
if ($value) {
$rule = 'required|' . $rule;
}
$rules["question.{$key}"] = $rule;
}
if ($all) {
$rules["name.*"] = 'required|max:255|string';
}
// the issue is here, country is null
dd($request->country);
dd(substr($request->country, 0, 2) . $request->vat);
//Validator::validate( substr($request->country, 0, 2).$request->vat); // false (checks format + existence)
$validator = Validator::make($request->all(), $rules, $messages);
$errors = $validator->errors();
$errors = json_decode($errors);
if ($validator->fails()) {
return response()->json([
'success' => false,
'errors' => $errors
], 422);
}
return response()->json([
'success' => true,
'message' => 'success'
], 200);
}
// jQuery that do an ajax request