Estou fazendo um formulário pop up usando o modal, mas não estou conseguindo editar ele da maneira que eu estou querendo, cheguei até uma certa parte mas não consegui avançar para ficar do jeito que tinha feito em asp e javascript, segue imagem para melhor interpretação;
Esse print é do formulário pop up modal que estou fazendo
Segue os codigos do modal
contact.php
<?php /* * SimpleModal Contact Form * http://simplemodal.com * * Copyright (c) 2013 Eric Martin - http://ericmmartin.com * * Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php */ date_default_timezone_set('America/Sao_Paulo'); // User settings $to = "wandersom@greletronics.com.br"; $subject = "Formulário POP UP"; // Include extra form fields and/or submitter data? // false = do not include $extra = array( "form_subject" => true, "form_cc" => true, "ip" => true, "user_agent" => true ); // Process $action = isset($_POST["action"]) ? $_POST["action"] : ""; if (empty($action)) { // Send back the contact form HTML $output = "<div style='display:none'> <div class='contact-top'></div> <div class='contact-content'> <h1 class='contact-title'>Formulário:</h1> <div class='contact-loading' style='display:none'></div> <div class='contact-message' style='display:none'></div> <form action='#' style='display:none'> <label for='contact-name'>*Nome:</label> <input type='text' id='contact-name' class='contact-input' name='name' tabindex='1001' /> <label for='contact-email'>*E-mail:</label> <input type='text' id='contact-email' class='contact-input' name='email' tabindex='1002' />"; if ($extra["form_subject"]) { $output .= " <label for='contact-subject'>Cadastre uma senha:</label> <input type='text' id='contact-subject' class='contact-input' name='subject' value='' tabindex='1003' />"; } $output .= " <label for='contact-message'>*Message:</label> <textarea id='contact-message' class='contact-input' name='message' cols='40' rows='4' tabindex='1004'></textarea> <br/>"; if ($extra["form_cc"]) { $output .= " <label> </label> <span class='contact-cc'></span> "; } $output .= " <label> </label> <button type='submit' class='contact-send contact-button' tabindex='1006'>Enviar</button> <br/> <input type='hidden' name='token' value='" . smcf_token($to) . "'/> </form> </div> <div class='contact-bottom'></div> </div>"; echo $output; } else if ($action == "send") { // Send the email $name = isset($_POST["name"]) ? $_POST["name"] : ""; $email = isset($_POST["email"]) ? $_POST["email"] : ""; $subject = isset($_POST["subject"]) ? $_POST["subject"] : $subject; $message = isset($_POST["message"]) ? $_POST["message"] : ""; $cc = isset($_POST["cc"]) ? $_POST["cc"] : ""; $token = isset($_POST["token"]) ? $_POST["token"] : ""; // make sure the token matches if ($token === smcf_token($to)) { smcf_send($name, $email, $subject, $message, $cc); echo "Your message was successfully sent."; } else { echo "Unfortunately, your message could not be verified."; } } function smcf_token($s) { return md5("smcf-" . $s . date("WY")); } // Validate and send email function smcf_send($name, $email, $subject, $message, $cc) { global $to, $extra; // Filter and validate fields $name = smcf_filter($name); $subject = smcf_filter($subject); $email = smcf_filter($email); if (!smcf_validate_email($email)) { $subject .= " - invalid email"; $message .= "\n\nBad email: $email"; $email = $to; $cc = 0; // do not CC "sender" } // Add additional info to the message if ($extra["ip"]) { $message .= "\n\nIP: " . $_SERVER["REMOTE_ADDR"]; } if ($extra["user_agent"]) { $message .= "\n\nUSER AGENT: " . $_SERVER["HTTP_USER_AGENT"]; } // Set and wordwrap message body $body = "From: $name\n\n"; $body .= "Message: $message"; $body = wordwrap($body, 70); // Build header $headers = "From: $email\n"; if ($cc == 1) { $headers .= "Cc: $email\n"; } $headers .= "X-Mailer: PHP/SimpleModalContactForm"; // UTF-8 if (function_exists('mb_encode_mimeheader')) { $subject = mb_encode_mimeheader($subject, "UTF-8", "B", "\n"); } else { // you need to enable mb_encode_mimeheader or risk // getting emails that are not UTF-8 encoded } $headers .= "MIME-Version: 1.0\n"; $headers .= "Content-type: text/plain; charset=utf-8\n"; $headers .= "Content-Transfer-Encoding: quoted-printable\n"; // Send email @mail($to, $subject, $body, $headers) or die("Unfortunately, a server issue prevented delivery of your message."); } // Remove any un-safe values to prevent email injection function smcf_filter($value) { $pattern = array("/\n/","/\r/","/content-type:/i","/to:/i", "/from:/i", "/cc:/i"); $value = preg_replace($pattern, "", $value); return $value; } // Validate email address format in case client-side validation "fails" function smcf_validate_email($email) { $at = strrpos($email, "@"); // Make sure the at (@) sybmol exists and // it is not the first or last character if ($at && ($at < 1 || ($at + 1) == strlen($email))) return false; // Make sure there aren't multiple periods together if (preg_match("/(\.{2,})/", $email)) return false; // Break up the local and domain portions $local = substr($email, 0, $at); $domain = substr($email, $at + 1); // Check lengths $locLen = strlen($local); $domLen = strlen($domain); if ($locLen < 1 || $locLen > 64 || $domLen < 4 || $domLen > 255) return false; // Make sure local and domain don't start with or end with a period if (preg_match("/(^\.|\.$)/", $local) || preg_match("/(^\.|\.$)/", $domain)) return false; // Check for quoted-string addresses // Since almost anything is allowed in a quoted-string address, // we're just going to let them go through if (!preg_match('/^"(.+)"$/', $local)) { // It's a dot-string address...check for valid characters if (!preg_match('/^[-a-zA-Z0-9!#$%*\/?|^{}`~&\'+=_\.]*$/', $local)) return false; } // Make sure domain contains only valid characters and at least one period if (!preg_match("/^[-a-zA-Z0-9\.]*$/", $domain) || !strpos($domain, ".")) return false; return true; } exit; ?>
contact.css
/* * SimpleModal Contact Form * http://simplemodal.com * * Copyright (c) 2013 Eric Martin - http://ericmmartin.com * * Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php */ /* Overlay */ #contact-overlay {background-color:#000;} /* Container */ #contact-container {font: 16px/22px 'Trebuchet MS', Verdana, Arial; text-align:left; width:450px;} #contact-container .contact-content {background-color:#FFFFFF; color:#1F5771; height:40px;} #contact-container h1 {color:#d76300; font-size:15px; line-height:50px; margin:0; padding:0 0 6px 12px; text-align:center;} #contact-container .contact-loading {background:url(../img/contact/loading.gif) no-repeat; height:55px; margin:-14px 0 0 190px; padding:0; position:center; width:54px; z-index:8000;} #contact-container .contact-message {text-align:center;} #contact-container .contact-error {background:#000000; border:2px solid #ccc; font-size:14px; font-weight:bold; line-height:18px; margin:0 auto; padding:2px; width:92%;} #contact-container br {clear:both;} #contact-container form {margin:0; padding:0;} #contact-container label {clear:left; display:block; float:left; font-weight:bold; padding-right:4px; text-align:right; width:100px;} #contact-container .contact-input {background:#eee; border:1px solid #fff; font-family:'Trebuchet MS', Verdana, Arial; float:left; padding:2px; margin:2px; width:300px;} #contact-container textarea {height:114px;} #contact-container .contact-cc {cursor:default; font-size:14px; vertical-align:top;} #contact-container .contact-top {background-color:#FFFFFF; height:13px; margin:0; padding:0; -webkit-border-top-left-radius:8px; -webkit-border-top-right-radius:8px; -moz-border-radius-topleft:8px; -moz-border-radius-topright:8px; border-radius:8px 8px 0 0;} #contact-container .contact-bottom {background-color:#FFFFFF; font-size:12px; height:13px; line-height:12px; text-align:center; -webkit-border-bottom-right-radius:8px; -webkit-border-bottom-left-radius:8px; -moz-border-radius-bottomright:8px; -moz-border-radius-bottomleft:8px; border-radius:0 0 8px 8px;} #contact-container .contact-bottom a, #contact-container .contact-bottom a:link, #contact-container .contact-bottom a:active, #contact-container .contact-bottom a:visited {color:#666; position:relative; top:-4px; text-decoration:none;} #contact-container .contact-bottom a:hover {color:#888;} #contact-container .contact-button {background:#1F5771; border:0; color:#fff; cursor:pointer; font-size:16px; font-weight:bold; height:26px; margin:4px 0 0 4px; text-align:center; vertical-align:middle; -webkit-border-radius:8px; -moz-border-radius:8px; border-radius:8px;} #contact-container .contact-button:hover {background:#f49000;} #contact-container a.modal-close, #contact-container a.modal-close:link, #contact-container a.modal-close:active, #contact-container a.modal-close:visited {color:#BBBBBB; font-size:18px; font-weight:bold; position:absolute; text-decoration:none; right:8px; top:0px;} #contact-container a.modal-close:hover {color:#ccc;}
contact.js
/* * SimpleModal Contact Form * http://simplemodal.com * * Copyright (c) 2013 Eric Martin - http://ericmmartin.com * * Licensed under the MIT license: * http://www.opensource.org/licenses/mit-license.php */ jQuery(function ($) { var contact = { message: null, init: function () { $('#contact-form input.contact, #contact-form a.contact').click(function (e) { e.preventDefault(); // load the contact form using ajax $.get("data/contact.php", function(data){ // create a modal dialog with the data $(data).modal({ closeHTML: "<a href='#' title='Close' class='modal-close'></a>", position: ["15%",], overlayId: 'contact-overlay', containerId: 'contact-container', onOpen: contact.open, onShow: contact.show, onClose: contact.close }); }); }); }, open: function (dialog) { // dynamically determine height var h = 280; if ($('#contact-subject').length) { h += 26; } if ($('#contact-cc').length) { h += 22; } var title = $('#contact-container .contact-title').html(); $('#contact-container .contact-title').html('Carregando...'); dialog.overlay.fadeIn(200, function () { dialog.container.fadeIn(200, function () { dialog.data.fadeIn(200, function () { $('#contact-container .contact-content').animate({ height: h }, function () { $('#contact-container .contact-title').html(title); $('#contact-container form').fadeIn(200, function () { $('#contact-container #contact-name').focus(); $('#contact-container .contact-cc').click(function () { var cc = $('#contact-container #contact-cc'); cc.is(':checked') ? cc.attr('checked', '') : cc.attr('checked', 'checked'); }); }); }); }); }); }); }, show: function (dialog) { $('#contact-container .contact-send').click(function (e) { e.preventDefault(); // validate form if (contact.validate()) { var msg = $('#contact-container .contact-message'); msg.fadeOut(function () { msg.removeClass('contact-error').empty(); }); $('#contact-container .contact-title').html('Sending...'); $('#contact-container form').fadeOut(200); $('#contact-container .contact-content').animate({ height: '80px' }, function () { $('#contact-container .contact-loading').fadeIn(200, function () { $.ajax({ url: 'data/contact.php', data: $('#contact-container form').serialize() + '&action=send', type: 'post', cache: false, dataType: 'html', success: function (data) { $('#contact-container .contact-loading').fadeOut(200, function () { $('#contact-container .contact-title').html('Thank you!'); msg.html(data).fadeIn(200); }); }, error: contact.error }); }); }); } else { if ($('#contact-container .contact-message:visible').length > 0) { var msg = $('#contact-container .contact-message div'); msg.fadeOut(200, function () { msg.empty(); contact.showError(); msg.fadeIn(200); }); } else { $('#contact-container .contact-message').animate({ height: '30px' }, contact.showError); } } }); }, close: function (dialog) { $('#contact-container .contact-message').fadeOut(); $('#contact-container .contact-title').html('Goodbye...'); $('#contact-container form').fadeOut(200); $('#contact-container .contact-content').animate({ height: 40 }, function () { dialog.data.fadeOut(200, function () { dialog.container.fadeOut(200, function () { dialog.overlay.fadeOut(200, function () { $.modal.close(); }); }); }); }); }, error: function (xhr) { alert(xhr.statusText); }, validate: function () { contact.message = ''; if (!$('#contact-container #contact-name').val()) { contact.message += 'Seu nome é obrigatório. '; } var email = $('#contact-container #contact-email').val(); if (!email) { contact.message += 'Email is required. '; } else { if (!contact.validateEmail(email)) { contact.message += 'Email is invalid. '; } } if (!$('#contact-container #contact-message').val()) { contact.message += 'Message is required.'; } if (contact.message.length > 0) { return false; } else { return true; } }, validateEmail: function (email) { var at = email.lastIndexOf("@"); // Make sure the at (@) sybmol exists and // it is not the first or last character if (at < 1 || (at + 1) === email.length) return false; // Make sure there aren't multiple periods together if (/(\.{2,})/.test(email)) return false; // Break up the local and domain portions var local = email.substring(0, at); var domain = email.substring(at + 1); // Check lengths if (local.length < 1 || local.length > 64 || domain.length < 4 || domain.length > 255) return false; // Make sure local and domain don't start with or end with a period if (/(^\.|\.$)/.test(local) || /(^\.|\.$)/.test(domain)) return false; // Check for quoted-string addresses // Since almost anything is allowed in a quoted-string address, // we're just going to let them go through if (!/^"(.+)"$/.test(local)) { // It's a dot-string address...check for valid characters if (!/^[-a-zA-Z0-9!#$%*\/?|^{}`~&'+=_\.]*$/.test(local)) return false; } // Make sure domain contains only valid characters and at least one period if (!/^[-a-zA-Z0-9\.]*$/.test(domain) || domain.indexOf(".") === -1) return false; return true; }, showError: function () { $('#contact-container .contact-message') .html($('<div class="contact-error"></div>').append(contact.message)) .fadeIn(200); } }; contact.init(); });
----------------------------------------------------------------------------------------------------------------------------------------------------------------
E esse é o print do Formulário pop up que fiz em asp e javascript e que funciona certinho gostaria de montar o modal dessa maneira
Sendo que os campos de e-mail e cadastro de senha sejam obrigatórios, o campo de selecionar atendente não precisa de nenhum comando apenas para o usuario ver que tem alguém online, e quando a pessoa clica em prosseguir os dados do formulário tem que ser enviado para mim por e-mail e só assim ele consegue avançar ou sair do pop up para poder ter acesso aos conteúdos da pagina.
se alguém puder me ajudar agradeço, pois tem alguns dias que estou quebrando a cabeça e procurando na internet mas não obtive sucesso.