Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здравствуйте друзья
хочу сделать на странице форму онлайн калькулятора
упрощенно будет выглядеть так
{!! Form::open(array('route' => 'order', 'class' => 'go-right calculator', 'files' => true)) !!}
@if(Session::has('message'))
<div class="alert alert-info">{{Session::get('message')}}</div>
@endif
@if(Session::has('errors'))
<div class="alert alert-info">@foreach($errors->all() as $error){{ $error }}<br>@endforeach
</div>
@endif
<input name="calc" type="hidden" value="mycalc">
<div class="row">
<div class="form-group col-xs-6 col-sm-4"><h4>Размеры</h4></div>
<div class="form-group col-xs-3 col-sm-4">
<input name="quantity" type="text" class="form-control">
<label for="quantity">Кол-во</label>
</div>
</div>
<div class="col-xs-6"><h4>Цена</h4></div>
<div class="col-xs-6"><div class="custom-dropdown custom-dropdown--white">
<select class="price custom-dropdown__select custom-dropdown__select--white" name="price">
<option value="2200" selected="selected">2200</option>
<option value="2800" >2200</option>
<option value="4000" >2200</option>
</select>
</div></div>
<div class="form-group col-xs-12 col-sm-6">
<input id="name" name="name" type="text" class="form-control" required>
<label for="name">Ваше имя *</label>
</div>
<div class="form-group col-xs-12 col-sm-6">
<input id="phone" name="tel" type="tel" class="form-control" required>
<label for="phone">Номер телефона *</label>
</div>
<div class="form-group col-xs-12 col-sm-6">
<input id="email" name="email" type="email" class="form-control" required>
<label for="email">Адрес электронной почты *</label>
</div>
<div class="form-group col-xs-12 col-sm-6">
<textarea id="message" name="message" class="form-control"></textarea>
<label for="message">Комментарии</label>
</div>
<div class="footer col-xs-12 col-sm-6">
<button type="submit" class="btn btn-primary pull-right">Отправить заказ</button>
</div>
<div class="result col-xs-12 col-sm-6"><h4>Итоговая спецификация</h4>
Стоимость: <span class="total">0</span>руб</div>
вот скрипт, который считает некоторое значение и выводит результат на странице в блок, имеющий класс .total
$(document).ready(function () {
$('input[name="quantity"]').change(function () {
calculation();
});
$('select.price').change(function () {
calculation();
});
function calculation() {
var total = $('input[name="quantity"]').val() * $('select.price option:selected').val();
$('.result').children('.total').html( total );
return false;
$.ajax({
type: "POST",
url: "/path/to/my/page",
data: {total:total },
});
};
});
насколько я понимаю последние строчки $.ajax при нажатии на кнопку отправить должны передавать переменную total в массив POST и соответственно я смогу обрабатывать эту переменную в контроллере, но почему-то этого не происходит
вызов dd($request->all()) выводит массив только со значениями quantity и price
public function order(CalculatorRequest $request)
{
$input = Input::all();
$calc = $request->input('calc');
//check if its our form
if ( Session::token() !== Input::get( '_token' ) ) {
return Response::json( array(
'msg' => 'Несанкционированная попытка отправки письма'
) );
}
if ( $calc == 'mycalc' ) {
$mailtemplate = 'emails.mycalc';
$mailarray = array(
'quantity' => $request->quantity,
'price' => $request->price,
'total' => $request->total,
'name' => $request->input('name'),
'tel' => $request->input('tel'),
'email' => $request->input('email'),
'user_message' => $request->input('message'),
);
Mail::send($mailtemplate, $mailarray,
function($message) use ($request, $input)
{
$message->from('admin@mysyte.ru', $request->input('name') );
$message->to('info@mysyte.ru', 'info');
$message->setCc($request->input('email'), $request->input('name'));
$message->replyTo($request->input('email'), $request->input('name') );
$message->subject('Заказ с сайта');
});
// return Redirect::back()->with('message', 'Ваше сообщение отправлено! Мы свяжемся с вами в ближайшее время для уточнения деталей заказа');
// строку выше я пока заблокировал, чтобы видеть массив POST
return Redirect::back()->with( dd($request->all()) );
}
}
и в конце мне должно приходить письмо mycalc.blade.php
<p>
Кол-во: {{ $size }}<br>
Цена: {{ $price }}<br>
-------------------------<br>
Сумма: {{ $total }}<br>
-------------------------<br>
Имя: {{ $name }}<br>
Телефон: {{ $tel }}<br>
Email: {{ $email }}<br>
-------------------------<br>
Сообщение: {{ $user_message }}
</p>
<p>Это сообщение отправлено со страницы $pagetitle - {{ $_SERVER['SERVER_NAME'] }} $pageurl</p>
вот переменную $total никак не получается получить
Не в сети
Не в сети
закомментировал return false; - не помогло
Не в сети
Не в сети
там нету нихрена
total туда не попадает
Content-Type: multipart/form-data; boundary=---------------------------304341834022026
Content-Length: 1865
-----------------------------304341834022026
Content-Disposition: form-data; name="_token"
RNf1X3RBBpzmTY7kKQpybECb3vAuQkc5fhVksEEC
-----------------------------304341834022026
Content-Disposition: form-data; name="calc"
skinali
-----------------------------304341834022026
Content-Disposition: form-data; name="size_b1"
2000
-----------------------------304341834022026
Content-Disposition: form-data; name="size_h1"
600
-----------------------------304341834022026
Content-Disposition: form-data; name="rozetki"
2
-----------------------------304341834022026
Content-Disposition: form-data; name="otverstija"
1
-----------------------------304341834022026
Content-Disposition: form-data; name="krepej"
4
-----------------------------304341834022026
Content-Disposition: form-data; name="glass"
Прозрачное
-----------------------------304341834022026
Content-Disposition: form-data; name="led"
нет
-----------------------------304341834022026
Content-Disposition: form-data; name="dekor"
Фотопечать
-----------------------------304341834022026
Content-Disposition: form-data; name="dostavka"
в пределах МКÐД
-----------------------------304341834022026
Content-Disposition: form-data; name="zamkad"
-----------------------------304341834022026
Content-Disposition: form-data; name="montazh"
нет
-----------------------------304341834022026
Content-Disposition: form-data; name="name"
ИльÑ
-----------------------------304341834022026
Content-Disposition: form-data; name="tel"
1234567
-----------------------------304341834022026
Content-Disposition: form-data; name="email"
test@mail.ru
-----------------------------304341834022026
Content-Disposition: form-data; name="message"
-----------------------------304341834022026--
Не в сети
Не в сети
А че делать что нормально было?
Я с этим Аяксом вообще ни разу не связывался. Поэтому вообще не пойму как быть
Не в сети
Не в сети
ну, обычно подобные проблемы в асинхронности выполнения js кода. запрос ушёл, а ответ ловишь чем? пальцем ?.
возьми у меня реквестор https://github.com/h-zone/lib-appjs
+ там ещё полезного есть.
демо либо по ссылке в ридми либо запускай index (предварительно запусти bower install)
Не в сети
+ в моём реквесторе автоматом перехват ошибок соединения/сервера/приложения (приложение: сам генеришь)
Не в сети
Страницы 1