Advokat Опубликовано 31 марта, 2018 Жалоба Поделиться Опубликовано 31 марта, 2018 Добрый день форумчане! Сегодня задумал сделать форму обратной связи на карточке товара, а именно после описания.Взял код стандартной обратной связи симпла, убрал строку "сообщения" оставил только "Имя" и "email" сменил на телефон. Скрипт стал выглядеть так: <h1>Обратная связь</h1><form class="form feedback_form" method="post"> <label>Имя</label> <input data-format=".+" data-notice="Введите имя" value="" name="name" maxlength="255" type="text"> <label>Ваш телефон</label> <input data-format="email" data-notice="Введите ваш телефон" value="" name="email" maxlength="255" type="text"> <input class="button right" type="submit" name="feedback" value="Отправить"> </form> Вставил его в описание товара через html. Как выглядит, меня в принципе устраивает. Но что дальше делать, я не знаю. Первое это то что строку ту что я отвел под "телефон" нужно еще подредактировать чтобы форма отправляла только цифрыИ второе, как эту форму связать с работой сайта, чтобы при нажатии отправить мне на почту приходило уведомление, или хотя бы в админке в разделе "обратная связь" появлялись уведомления. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 31 марта, 2018 Жалоба Поделиться Опубликовано 31 марта, 2018 view/FeedbackView.php view/ProductView.php Цитата Ссылка на сообщение Поделиться на другие сайты
Advokat Опубликовано 31 марта, 2018 Автор Жалоба Поделиться Опубликовано 31 марта, 2018 может у кого-то есть более обширный ответ))? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 31 марта, 2018 Жалоба Поделиться Опубликовано 31 марта, 2018 может у кого-то есть более обширный ответ))?Бесплатно за вас никто делать доработку не будет, так что либо сами изучаете либо платите специалисту за работу. Всё просто. Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 Более обширный:Вариант 1.1. Изучить полностью, как работает стандартная форма обратной связи (view/FeedbackView.php, api/Feedbacks.php, feedback.tpl) или форма комментария на странице товара.2. Применить полученные знания на странице товара (view/ProductView.php, product.tpl), написав собственный добавочный программный код.Вариант 2.Изыскать средства для оплаты работы мастера-специалиста. Пока что Вы сделали самую малую и самую легкую часть - примерно 5% от необходимого. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 Пока что Вы сделали самую малую и самую легкую часть - примерно 5% от необходимого.Интересно как ты дошёл до такого умозаключения? Цитата Ссылка на сообщение Поделиться на другие сайты
MStyle28 Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 Пишите в skype - mstyle28 Цитата Ссылка на сообщение Поделиться на другие сайты
MStyle28 Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 (изменено) В папке ajax создаём файл feedbacks.php с содержанием: <?php session_start(); require_once('../api/Simpla.php'); $simpla = new Simpla(); $feedback = new StdClass; $feedback->name = $simpla->request->post('name', 'string'); $feedback->phone = $simpla->request->post('phone'); $feedback_id = $simpla->feedbacks->add_feedback($feedback); $simpla->feedbacks->add_feedback(array('feedback_id'=>$feedback_id)); Вставляем в любом месте форму: <form class="CallBack_form" method="post"> <div class="form-group"> <label for="callback_name">Ваше имя:</label> <input type="text" id="callback_name" class="form-control" required="" name="callback_name"> </div> <div class="form-group"> <label for="callback_phone">Телефон:</label> <input type="text" id="callback_phone" class="form-control" required="" name="callback_phone"> </div> <input type="submit" class="btn btn-default btn-lg" value="Отправить"> </form> И js обработчик: $(document).on('submit', '.CallBack_form', function(e) { e.preventDefault(); $.ajax({ type: "post", url: "/ajax/feedbacks.php", data: { name: $('#callback_name').val(), phone: $('#callback_phone').val() }, dataType: 'json' }); $(".CallBack_form").html("<div class='form-header'><div class='text'><div class='title'>Заявка принята</div></div><div class='form_result success'>Спасибо! В ближайшее время мы с Вами свяжемся!</div></div>"); }); P.S. Вёрстку придется под себя корректировать в любом случае.А и в базу в s_feedbacks добавьте phone,и пропишите его в api,и в админке для вывода. Изменено 1 апреля, 2018 пользователем MStyle28 Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 В файле ajax/feedbacks.php последняя строка$simpla->feedbacks->add_feedback(array('feedback_id'=>$feedback_id));очень странная. По-моему, явно бессмысленое действие, которое даст ошибку. И в целом - слишком просто. Ошибки при заполнении формы (например, не ввел телефон) никак не обрабатываются в принципе. Такое хорошо как простенький урок для начинающих по работе с формой, а не код для работающего сайта... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 В файле ajax/feedbacks.php последняя строка$simpla->feedbacks->add_feedback(array('feedback_id'=>$feedback_id));очень странная. По-моему, явно бессмысленое действие, которое даст ошибку. И в целом - слишком просто. Ошибки при заполнении формы (например, не ввел телефон) никак не обрабатываются в принципе. Такое хорошо как простенький урок для начинающих по работе с формой, а не код для работающего сайта...Я долго ждал недовольства Корса Цитата Ссылка на сообщение Поделиться на другие сайты
MStyle28 Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 В файле ajax/feedbacks.php последняя строка$simpla->feedbacks->add_feedback(array('feedback_id'=>$feedback_id));очень странная. По-моему, явно бессмысленое действие, которое даст ошибку. И в целом - слишком просто. Ошибки при заполнении формы (например, не ввел телефон) никак не обрабатываются в принципе. Такое хорошо как простенький урок для начинающих по работе с формой, а не код для работающего сайта... Какие ошибки при заполнении формы? Там required стоит в обоих полях. И в целом, выложи своё решение Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 Какие ошибки при заполнении формы? Там required стоит в обоих полях. И в целом, выложи своё решение Это дешевизна, проверка должна быть как на фронт так и бек ендах! Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 1 апреля, 2018 Жалоба Поделиться Опубликовано 1 апреля, 2018 (изменено) Это дешевизна, проверка должна быть как на фронт так и бек ендах! ну просто в indexview.php после function fetch(){ if($this->request->method('post') && $this->request->post('feedback')) { $feedback->name = $this->request->post('name'); $feedback->email = $this->request->post('email'); $feedback->phone = $this->request->post('phone'); $feedback->message = $this->request->post('message'); $captcha_code = $this->request->post('captcha_code'); $this->design->assign('name', $feedback->name); $this->design->assign('email', $feedback->email); $this->design->assign('phone', $feedback->phone); $this->design->assign('message', $feedback->message); if(empty($feedback->name)) $this->design->assign('error', 'empty_name'); elseif(empty($feedback->email)) elseif(empty($feedback->email)) $this->design->assign('error', 'empty_phone'); $this->design->assign('error', 'empty_phone'); elseif(empty($feedback->message)) $this->design->assign('error', 'empty_text'); elseif(empty($_SESSION['captcha_code']) || $_SESSION['captcha_code'] != $captcha_code || empty($captcha_code)) { $this->design->assign('error', 'captcha'); } else { $this->design->assign('message_sent', true); $feedback->ip = $_SERVER['REMOTE_ADDR']; $feedback_id = $this->feedbacks->add_feedback($feedback); // Отправляем email $this->notify->email_feedback_admin($feedback_id); // Приберем сохраненную капчу, иначе можно отключить загрузку рисунков и постить старую unset($_SESSION['captcha_code']); } и добавить поле в бд phone Изменено 1 апреля, 2018 пользователем shooroop Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 2 апреля, 2018 Жалоба Поделиться Опубликовано 2 апреля, 2018 Facepalm Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 2 апреля, 2018 Жалоба Поделиться Опубликовано 2 апреля, 2018 Facepalm+1 Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.