在thickbox内提交表单

发布于 2024-07-14 10:35:40 字数 109 浏览 8 评论 0原文

我在thickbox中打开了一个联系表单,当用户单击“提交表单数据”时,我希望将其提交到我的php,该php将处理该数据并将成功的消息显示回thickbox。 php 页面被调用,但我如何获取表单数据?

I have a contact form open in thickbox i want when user click on submit form data submit to my php that will process that data and show sucessfull msg back to thickbox.
php page is called but how i will get form data?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

哥,最终变帅啦 2024-07-21 10:35:40

首先使用thickbox的iframe功能加载thickbox中的表单。 确保您已加载 jquery 和thickbox,方法是将其放入文档的 HTML 头部:

<script type="text/javascript" src="/javascripts/jquery.js"></script>
<script type="text/javascript" src="/javascripts/thickbox.js"></script>
<link href="/stylesheets/thickbox.css" rel="stylesheet" type="text/css" />

然后在页面上放置一个链接,在 iframe 中加载联系我们表单:

<a href="/contact_us_form.php?KeepThis=true&TB_iframe=true&height=400&width=600&modal=true" class="thickbox" title="Contact Us">Contact Us</a>

您的表单应该具有具有以下基本结构的标记:

<div id="content">
  <form id="contact_us" action="/contact_us.php" method="POST">
     ...
  </form>
</div>

现在使用 jQuery通过 AJAX 发送到您的表单。 将其放在 HTML 文档的头部:

<script type="text/javascript">
  jQuery(function($){
    $('#contact_us').submit(function(){ 
      $.post($(this).attr('action'), function(html) { 
        $('#content').html(html)
      })
      return false
    })
  })
</script>

其作用是:

  1. 向表单添加一个函数,以便在提交表单时调用。 它返回 false 以防止发生表单提交的默认行为。

  2. 此提交函数将使用您设置为 contact_us.php 的表单操作执行 AJAX 发布。

  3. 最后,这将采用 contact_us.php 返回的任何内容,并将 div 的内容替换为 id 内容。

因此,让您的 contact_us.php 脚本实际发送电子邮件或创建数据库记录,无论它执行什么操作,然后让它返回以下 HTML:

<p>Thank you for your submission!</p>

<p><a href="#" onclick="window.parent.tb_remove(); return false">Continue</a>

显然,这可以是您想要的任何内容,无论您想要结束什么消息用户查看。 该链接向您展示了如何使厚盒窗口消失。

First use thickbox's iframe feature to load the form in the thickbox. Make sure you have jquery and thickbox loaded by putting this in the HTML head of your document:

<script type="text/javascript" src="/javascripts/jquery.js"></script>
<script type="text/javascript" src="/javascripts/thickbox.js"></script>
<link href="/stylesheets/thickbox.css" rel="stylesheet" type="text/css" />

Then put a link on the page the loads the contact us form in the iframe:

<a href="/contact_us_form.php?KeepThis=true&TB_iframe=true&height=400&width=600&modal=true" class="thickbox" title="Contact Us">Contact Us</a>

Your form should have markup that has this basic structure:

<div id="content">
  <form id="contact_us" action="/contact_us.php" method="POST">
     ...
  </form>
</div>

Now use jQuery to your form via AJAX. Put this in the head of the HTML document:

<script type="text/javascript">
  jQuery(function($){
    $('#contact_us').submit(function(){ 
      $.post($(this).attr('action'), function(html) { 
        $('#content').html(html)
      })
      return false
    })
  })
</script>

What this does is:

  1. Adds a function to the form to be called when the form is submitted. It returns false to prevent the default behavior of a form submitting from happen.

  2. This submit function will do an AJAX post, using the action of the form, which you set to contact_us.php.

  3. Finally, this will take whatever content contact_us.php returns and replace the content of the div with the id content with that.

So make your contact_us.php script actually send the email or create a database record, whatever it does, and then have it return this HTML:

<p>Thank you for your submission!</p>

<p><a href="#" onclick="window.parent.tb_remove(); return false">Continue</a>

Obviously this can be anything you want, whatever message you want the end user to see. The link shows you how to make the thickbox window go away.

紫罗兰の梦幻 2024-07-21 10:35:40

要发布表单数据,需要使用 jQuery 的序列化函数。

修改上面的例子:

$.post($(this).attr('action'), $(this).serialize(), function(html) { 
    $('#content').html(html);
});

To post form data, one would need to use jQuery's serialize function.

Modifying the example above:

$.post($(this).attr('action'), $(this).serialize(), function(html) { 
    $('#content').html(html);
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文