【问题标题】:Open modal windows after submiting PHP contact form (AJAX? jQuery?)提交 PHP 联系表单后打开模式窗口(AJAX?jQuery?)
【发布时间】:2013-03-05 03:19:42
【问题描述】:

我已经重新制定了我的第一个问题,因为我认为它太模糊了!

案例:santz.net/index.contacto.html(如果你想尝试发送东西没关系...我收到了,所以没问题)

这是我的代码.....

联系表:

    <form id="contact-form" name="contact-form" class="p25" action="contact.php" method="post">
        <fieldset>
            <label class="name">
                <input class="input" type="text" value="Nombre" onfocus="if(this.value == 'Nombre'){this.value = '';}" onblur="if(this.value == ''){this.value='Nombre';}" name="php_name" />
            </label>
            <label class="email">
                <input class="input" type="email" value="Email" onfocus="if(this.value == 'Email'){this.value = '';}" onblur="if(this.value == ''){this.value='Email';}" name="php_email" />
            </label>
            <label class="phone">
                <input class="input" type="tel" value="Teléfono" onfocus="if(this.value == 'Teléfono'){this.value = '';}" onblur="if(this.value == ''){this.value='Teléfono';}" name="php_phone" />
            </label>
            <label class="message">
                <textarea class="textarea" onfocus="if(this.value == 'Mensaje'){this.value = '';}" onblur="if(this.value == ''){this.value='Mensaje';}" name="php_message">Mensaje</textarea>
            </label>

            <div class="buttons-wrapper ml20">
                <div class="submit-comment">
                    <span></span>
                    <input type="reset" value="Cancelar">
                </div>
                <div class="submit-comment ml25">
                    <span></span>
                    <input type="submit" value="Enviar">
                    <div id="clicker"></div>
                </div>
            </div>
        </fieldset>
    </form>

这是我的 PHP 代码:

<?php
$field_name = $_POST['php_name'];
$field_email = $_POST['php_email'];
$field_phone = $_POST['php_phone'];
$field_message = $_POST['php_message'];

$field_sender = 's2@hotmail.com';

$mail_to = 's@hotmail.com';
$subject = 'Mensaje via Santz.net de '.$field_name;

$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Phone: '.$field_phone."\n";
$body_message .= 'Message: '.$field_message;

$headers = 'From: '.$field_sender."\r\n";
$headers .= 'Reply-To: '.$field_email."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
    <script language="javascript" type="text/javascript">
        alert('Gracias por contactarse, en breve, me pondre en contacto.\n\nSantz Design | www.santz.net');
        window.location = 'index.contacto.html';
    </script>
<?php
}
else { ?>
    <script language="javascript" type="text/javascript">
        alert('El envio fallo. Por favor, envie un mail directamente a info@santz.net');
        window.location = 'index.contacto.html';
    </script>
<?php
}
?>

我想做的是以下...

联系表格现在有效,我收到了电子邮件……没关系……所以:

1- 我需要在您提交表单时消除页面刷新/重定向 2-要替换刷新/重新加载/重定向,我需要在提交表单时打开一个模式窗口(我会将任何内容放在那里......)(例如:pixeden. com/media-icons/soft-media-icons-set-vol-2 ...当我点击“下载”时打开的对话框)

这是另一个用户向我推荐的模态框(非常好):mywebdeveloperblog.com/my-jquery-plugins/modalpoplite

问题是我不明白提交后如何删除重新加载/刷新/重定向问题,我不明白提交表单后如何连接模态框打开事件...

注意:

我对这一切都很陌生(我只有 17 岁),所以我不是程序员......只是一个懂一点编程的设计师......但我正在学习编程网络所以我需要帮助。

如果 PHP 不可行,我需要转换编程技术,请告诉我。我愿意接受任何可以完全解决我的问题的编程语言!

非常感谢!!!

【问题讨论】:

    标签: php jquery ajax forms contact


    【解决方案1】:

    将此脚本放入您的联系表单的&lt;head&gt;:

    <link href="http://code.jquery.com/ui/1.10.1/themes/base/jquery-ui.css" rel="stylesheet" type="text/css" />
    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.js"></script>
    <script type="text/javascript">
    $(function() {
        $("#dialog-modal").dialog({
            height: 140,
            modal: true,
            autoOpen: false
        });
        $('#contact-form').submit(function() {
            $("#dialog-modal").dialog("open");
            $.ajax({
                type: "POST",
                url: $(this).attr('action'),
                data: $(this).serialize(),
                success: function() {
                    $("#dialog-modal").dialog("close");
                }
            });
            return false;
        });
    });
    </script>
    

    将此粘贴​​到正文的任何​​位置:

    <div id="dialog-modal">Form submitted</div>
    

    【讨论】:

    • 塞缪尔,这太棒了!它正是我想要的。现在我必须只自定义和设计所有东西,这是我唯一了解的东西!所以真的很感谢!但是,我遇到了一个问题...检查页面:santz.net/index.contacto.html,您会注意到在底部,如果您尚未提交任何表单,则“对话框模式” div 没有隐藏,我的意思是,文本就在那里(检查左下角)。第二件事是我提交了表格,但是在 ir! 之后这并没有清除,请您帮我解决这两个问题吗?非常感谢!不好意思打扰了!
    • 我是 Santiago B。我向您的 Facebook 发送了一条消息!如果可以,我不打扰你,请回答我!非常感谢!编辑:我设置了 display:none 但对话框的内容在它应该显示时也是“无”!
    • 酷。你很棒。我相信最后一期...请自己尝试一下。访问页面并检查!当您填写表格并点击提交时,表格已成功提交,但对话框未打开。仅当您在提交后再次单击提交时才会打开该对话框。 (好像需要双击……非常罕见……)
    • 没有纠正问题...看来我要问的问题很棘手!!
    • 它没有...对话框打开但表单没有提交。考虑到成功触发了“打开”事件,这很奇怪。
    【解决方案2】:

    Santz,他们最有可能使用 ajax 和 jquery UI 对话框在 javascripts ajax 响应返回时显示。这是一个很好的小教程,解释了他们是如何做到这一点的。祝你好运。

    http://net.tutsplus.com/tutorials/javascript-ajax/submit-a-form-without-page-refresh-using-jquery/

    【讨论】:

    • 谢谢我读了它对了解塞缪尔在做什么非常有用!真的谢谢!
    猜你喜欢
    • 2013-02-20
    • 2016-07-03
    • 2018-10-28
    • 1970-01-01
    • 2012-08-30
    • 1970-01-01
    • 2012-08-14
    • 2017-06-17
    • 1970-01-01
    相关资源
    最近更新 更多