По моей логике сигнал о том что кнопку нажали ловит jQuery и jqBootstrapValidation, проверяют заполнены ли строки формы и выводят сообщения о том что нужно заполнить на <p class="help-block text-danger"></p>. Так же jqBootstrapValidation проверяет правильно ли введен email адрес, и если что говорит о том что не правильно.
Затем если всё введено правильно сигнал уходит в contact_me.js:
$(function() { $("input,textarea").jqBootstrapValidation({ preventSubmit: true, submitError: function($form, event, errors) { // additional error messages or events }, submitSuccess: function($form, event) { event.preventDefault(); // prevent default submit behaviour // get values from FORM var name = $("input#name").val(); var email = $("input#email").val(); var phone = $("input#phone").val(); var message = $("textarea#message").val(); var firstName = name; // For Success/Failure Message // Check for white space in name for Success/Fail message if (firstName.indexOf(' ') >= 0) { firstName = name.split(' ').slice(0, -1).join(' '); } $.ajax({ url: "././mail/contact_me.php", type: "POST", data: { name: name, phone: phone, email: email, message: message }, cache: false, success: function() { // Success message $('#success').html("<div class='alert alert-success'>"); $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×") .append("</button>"); $('#success > .alert-success') .append("<strong>Your message has been sent. </strong>"); $('#success > .alert-success') .append('</div>'); //clear all fields $('#contactForm').trigger("reset"); }, error: function() { // Fail message $('#success').html("<div class='alert alert-danger'>"); $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×") .append("</button>"); $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"); $('#success > .alert-danger').append('</div>'); //clear all fields $('#contactForm').trigger("reset"); }, }) }, filter: function() { return $(this).is(":visible"); }, }); $("a[data-toggle=\"tab\"]").click(function(e) { e.preventDefault(); $(this).tab("show"); });});/*When clicking on Full hide fail/success boxes */$('#name').focus(function() { $('#success').html('');});
Который передаёт данные заполненной формы в contact_me.php:
<?php// Check for empty fieldsif(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['phone']) || empty($_POST['message']) || !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL)) { echo "No arguments Provided!"; return false; } $name = $_POST['name'];$email_address = $_POST['email'];$phone = $_POST['phone'];$message = $_POST['message']; // Create the email and send the message$to = 'МойАдрес@gmail.com'; // Add your email address inbetween the '' replacing yourname@yourdomain.com - This is where the form will send a message to.$email_subject = "Сообщение с PhotoRift от $name";$email_body = "У вас новый заказ.\n\n"."Подробности:\n\nИмя: $name\n\nEmail: $email_address\n\nНомер телефона: $phone\n\nТекст сообщения:\n$message";$headers = "From: $email_address\n"; // This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com.$headers .= "Reply-To: $email_address"; mail($to,$email_subject,$email_body,$headers);return true; ?>
И уже после этого в contact_me.js определяется отправилось или нет, и выдает соответствующее сообщение на <div id="success"></div> в форму.
Всё это работает без проблем.
Сейчас мне нужно на эту же страницу выше добавить форму из двух строк с кнопкой для подписки, Аля введите своё имя эмэйл и будьте в курсе всех новостей.
Как теперь сделать так что бы она обрабатывалась подобным образом, так же как форма обратной связи, проверялась на заполненность строк и правильность email адреса, но при правильном заполнении выполнялся addInformation.php:
Сам пробовал что то мудрить, но за незнанием не вышло.
Сделал копию скрипта contact_me.js переименовал его на follow_me.js и прикрутил к странице, подредактировал:
$(function() { $("input").jqBootstrapValidation({ preventSubmit: true, submitError: function($form, event, errors) { // additional error messages or events }, submitSuccess: function($form, event) { event.preventDefault(); // prevent default submit behaviour // get values from FORM var name = $("input#name").val(); var email = $("input#email").val(); var firstName = name; // For Success/Failure Message // Check for white space in name for Success/Fail message if (firstName.indexOf(' ') >= 0) { firstName = name.split(' ').slice(0, -1).join(' '); } $.ajax({ url: "././mail/addInformation.php", type: "POST", data: { name: name, email: email }, cache: false, success: function() { // Success message $('#successfollow').html("<div class='alert alert-success'>"); $('#successfollow > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×") .append("</button>"); $('#successfollow > .alert-success') .append("<strong>Your message has been sent. </strong>"); $('#successfollow > .alert-success') .append('</div>'); //clear all fields $('#followForm').trigger("reset"); }, error: function() { // Fail message $('#successfollow').html("<div class='alert alert-danger'>"); $('#successfollow > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>×") .append("</button>"); $('#successfollow > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!"); $('#successfollow > .alert-danger').append('</div>'); //clear all fields $('#followForm').trigger("reset"); }, }) }, filter: function() { return $(this).is(":visible"); }, }); $("a[data-toggle=\"tab\"]").click(function(e) { e.preventDefault(); $(this).tab("show"); });});/*When clicking on Full hide fail/success boxes */$('#name').focus(function() { $('#successfollow').html('');});
На деле:
При нажатии на кнопку отправить с незаполненными строчками выдаются сообщение о том что нужно заполнить строчки только в той форме где и нажали кнопку. Как и надо.
При не настроенном mail на сервере, если заполнить верхнюю форму(подписки,новую) нажать подписаться срабатывают оба скрипта contact_me.js и follow_me.js. и выводятся сообщения об ошибке у каждой формы, из своего скрипта.
При настроенном mail на сервере, если заполнить верхнюю форму(подписки,новую) нажать подписаться срабатывают оба скрипта contact_me.js и follow_me.js. и выводится сообщения об ошибке у нижней формы обратной связи, из его скрипта.
При не настроенном mail на сервере, если заполнить нижнею форму(обратной связи) нажать отправить срабатывает кнопка как я понимаю 2 раза и выводятся сообщение об ошибке у нижней формы, из своего скрипта, и сообщения о том что нужно заполнить обязательно строчки.
При настроенном mail на сервере, если заполнить нижнею форму(обратной связи) нажать отправить, выводятся сообщение о том что сообщение отправлено у каждой формы, из своего скрипта, при этом обрабатывается отправка почтового сообщения из формы отправки.
Как то так. Нужно как то разъединить эти действия. так что бы при нажатии на кнопку из формы обрабатывалась только форма к которой принадлежит эта кнопка.
You can post now and register later.
If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.
Здравствуйте, подскажите какой тег использовать для увеличения значения, пример на картинке.
Вроде, про такой тег я слышала. Если есть тег прогресс бар, значит и такое должно быть.
Question
35th
Здравствуйте.
Помогите с советом, сам не знаю как сделать.
На странице есть форма обратной связи методом post.
Код формы:
Обрабатывается эта форма как я понимаю скриптами:
По моей логике сигнал о том что кнопку нажали ловит jQuery и jqBootstrapValidation, проверяют заполнены ли строки формы и выводят сообщения о том что нужно заполнить на <p class="help-block text-danger"></p>. Так же jqBootstrapValidation проверяет правильно ли введен email адрес, и если что говорит о том что не правильно.
Затем если всё введено правильно сигнал уходит в contact_me.js:
Который передаёт данные заполненной формы в contact_me.php:
И уже после этого в contact_me.js определяется отправилось или нет, и выдает соответствующее сообщение на <div id="success"></div> в форму.
Всё это работает без проблем.
Сейчас мне нужно на эту же страницу выше добавить форму из двух строк с кнопкой для подписки, Аля введите своё имя эмэйл и будьте в курсе всех новостей.
Хочу передавать эти две строки в БД методом post.
Скопировал кусок формы, отредактировал:
Как теперь сделать так что бы она обрабатывалась подобным образом, так же как форма обратной связи, проверялась на заполненность строк и правильность email адреса, но при правильном заполнении выполнялся addInformation.php:
Сам пробовал что то мудрить, но за незнанием не вышло.
Сделал копию скрипта contact_me.js переименовал его на follow_me.js и прикрутил к странице, подредактировал:
На деле:
При нажатии на кнопку отправить с незаполненными строчками выдаются сообщение о том что нужно заполнить строчки только в той форме где и нажали кнопку. Как и надо.
При не настроенном mail на сервере, если заполнить верхнюю форму(подписки,новую) нажать подписаться срабатывают оба скрипта contact_me.js и follow_me.js. и выводятся сообщения об ошибке у каждой формы, из своего скрипта.
При настроенном mail на сервере, если заполнить верхнюю форму(подписки,новую) нажать подписаться срабатывают оба скрипта contact_me.js и follow_me.js. и выводится сообщения об ошибке у нижней формы обратной связи, из его скрипта.
При не настроенном mail на сервере, если заполнить нижнею форму(обратной связи) нажать отправить срабатывает кнопка как я понимаю 2 раза и выводятся сообщение об ошибке у нижней формы, из своего скрипта, и сообщения о том что нужно заполнить обязательно строчки.
При настроенном mail на сервере, если заполнить нижнею форму(обратной связи) нажать отправить, выводятся сообщение о том что сообщение отправлено у каждой формы, из своего скрипта, при этом обрабатывается отправка почтового сообщения из формы отправки.
Как то так. Нужно как то разъединить эти действия. так что бы при нажатии на кнопку из формы обрабатывалась только форма к которой принадлежит эта кнопка.
Вот он пример
Edited by 35thLink to comment
Share on other sites
15 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.