Jump to content
  • 0

Добавить checkbox и radio кнопки в существующую форму


kattiperk
 Share

Question

Здравствуйте.

Есть необходимость добавить варианты выбора чекбоксом и радио кнопкой в форме отправки.

 

Сайт тут - http://olegberesnev.com/

Форма эта - http://xozblog.ru/2012/11/modal-windows/

 

Подскажите, где поискать грамотно дописанное?

Link to comment
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Попробую вам объяснить смысл,

в вашем коде js

 

$("#send").on("click", function(){  - перехват события нажания кнопки с id = send но тип кнопки должен быть не submit

 

var emailval = $("#email").val(); - присвоение значения перемеенной поля с id = email

 

далее проверяется валидность ввода и добавляется соответствующий css класс к элементу

if(mailvalid == false) {
                $("#email").addClass("error");

 

Если проверки прошли то сериализуются все поля формы data: $("#contact").serialize(),   и отправляются аякс пост запросом скрипту url: 'sendmessage.php', в котором этот пост полей обрабатывается обычным самым способом

 

$usermail = $_POST['email']; и т.д.

 

если вам нужно добавить какие то поля то вам просто нужно добавить свои поля  в html разметку формы, в в вашей ссылке на форму есть разметка формы - у вас полагаю такая же, правите ее добавляя нужные поля.

Если нужно их обработать на самой форме - обрабатываете кодом js а если просто отправить то обрабатываете их уже в скрипте php , новые поля отправятся в скрипт из формы сами - так как вся форма сериализуется и отправляется аякс пост запросом в скрипт sendmessage.php , то есть вы свое новое поле примите как например $my_checkbox= $_POST['my_checkbox'];   вообще в скрипте нужна проверка существования переменной

вида if(isset($_POST['my_checkbox']){

   $my_checkbox= $_POST['my_checkbox'];

}

и так далее, нужно было бы добавить и проверку существования остальных переменных.

Далее если отправка прошла успешно php скрипт выводит echo "true";

 

В js коде проверяется что вернул запрос success: function(data) {
                        if(data == "true") {

........

и в зависимости от того что вернул запрос обрабатывется функция fadeOut  http://jquery-docs.ru/effects/fadeout/

закрывается окно fancybox  -   setTimeout("$.fancybox.close()", 1000);  через 1 секунду

 

Ну надеюсь понятно объяснил :wacko:

Edited by Andryshok
  • Like 1
Link to comment
Share on other sites

  • 0

В том что я немного не понимаю.

 

Обработчик

$("#send").on("click", function(){			var emailval  = $("#email").val();			var msgval    = $("#msg").val();			var msglen    = msgval.length;			var mailvalid = validateEmail(emailval);						if(mailvalid == false) {				$("#email").addClass("error");			}			else if(mailvalid == true){				$("#email").removeClass("error");			}						if(msglen < 4) {				$("#msg").addClass("error");			}			else if(msglen >= 4){				$("#msg").removeClass("error");			}						if(mailvalid == true && msglen >= 4) {				$("#send").replaceWith("<em>отправка...</em>");								$.ajax({					type: 'POST',					url: 'sendmessage.php',					data: $("#contact").serialize(),					success: function(data) {						if(data == "true") {							$("#contact").fadeOut("fast", function(){								$(this).before("<div class='checked-wrapper'><img class='checked-image' src='images/cheked.png'/><div class='thank-content'><p><strong>Thanks you. Your message was sent.</strong></p><p><strong>I will read it, and I'll tell you the answer.</strong></p></div><p>Regards, Oleg Beresnev.</p></div>");								setTimeout("$.fancybox.close()", 1000);							});						}					}				});			}		});

PHP

<?php$sendto   = "oleg.beresnev@me.com";$usermail = $_POST['email'];$content  = nl2br($_POST['msg']);// Формирование заголовка письма$subject  = "Новое сообщение";$headers  = "From: " . strip_tags($usermail) . "\r\n";$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";$headers .= "MIME-Version: 1.0\r\n";$headers .= "Content-Type: text/html;charset=utf-8 \r\n";// Формирование тела письма$msg  = "<html><body style='font-family:Arial,sans-serif;'>";$msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Новое сообщение</h2>\r\n";$msg .= "<p><strong>От кого:</strong> ".$usermail."</p>\r\n";$msg .= "<p><strong>Сообщение:</strong> ".$content."</p>\r\n";$msg .= "</body></html>";// отправка сообщенияif(@mail($sendto, $subject, $msg, $headers)) {	echo "true";} else {		echo "false";}?>
Link to comment
Share on other sites

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.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy