Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Добрый день!
Есть сайт одностраничник. В низу форма обратной связи. Задача - сделать ajax отправку е-майл. Проблема - выдает ошибку при нажатии кнопки "отправить" MethodNotAllowedHttpException. Читал данную тему https://laravel.ru/forum/viewtopic.php?id=868. У автора в начале была та же самая ошибка, но в теме не понял как проблема решилась. Искал информацию по данной ошибке, нашел несколько статей, где написано, что нужно делать роут с именем. Сделал роут с именем:
Route::post('submit', array('as' =>'submit', function(){
$validator = Validator::make(
array(
'name' => Input::get('name')
),
array(
'name' => 'required|max:10'
)
);
if($validator->fails()) {
return Response::json(
array(
'success'=> false ,
'errors'=>$validator->errors()->toArray()
)
);
}
return Response::json(array('success'=>true));
Форма главной странице
{{ Form::open(array('route' => 'submit'))}}
<input type="text" name="name" id="name">
<button type="submit">Submit</button>
{{ Form::close() }}
Скрипт
<script>
$(document).ready(function(){
$('form').submit(function(e){
e.preventDefault();
var formData = new FormData();
formData.append('name', $('#name').val());
$.ajax({
url: 'submit',
method: 'post',
processData: false,
contentType: false,
cache: false,
dataType: 'json',
data: formData,
success: function(data){
console.log(data);
},
error: function(){}
});
});
});
</script>
Ошибка исчезла но перекидывает на пустую страницу с адресом http://example.com/submit
Вопрос, как правильно сделать, чтоб не перекидывал на другую страницу, а оставаться на текущей, в нужной секции. В статьях, которые были найдены по этому вопросу,
Не в сети
Тему прошу удалить. Разобрался.
Не в сети
Коль разобрался - просвети нас!)
Не в сети
Коль разобрался - просвети нас!)
На самом деле, даже стыдно сказать в чем была проблема А именно подключение библиотеки JQuery и написание скрипта. Я ее подключил в самый низ, а скрипт писал получается выше (просто в теле шаблона). При этом все скрипты js вынесены в отдельный файл, который как и положено подключен ниже библиотеки. Таким образом, получился вот такой компот. Не понимал долго, что происходит.
Но теперь у меня новый вопрос есть Пока пытаюсь разобраться сам, если кратко суть проблемы - сообщения валидации не подтягиваются из папок. А подтягиваются из папки языка, который установлен в app.php. При этом другие сообщения (не относящиеся к валидации) в шаблоне через языковые переменные подтягиваются как положено, каждое из своей папки.
Не в сети
Спасибо тебе добрый человек, сэкономил мне кучу нервов!!!
Не в сети
Страницы 1