更新两个:进行一些测试后,我发现在页面中加载jQuery时,它不会起作用。我的网页依赖于jQuery,那我该怎么办?
Update Two: After doing some testing, I found that it does not work when jQuery is loaded in the page. My page relies on jQuery, so what should I do?
更新:你可以在这里看到有问题的页面 here ,以及工作测试页这里。
Update: You can see the problematic page here here, and the working test page here.
我正在制作联系表单,看起来像这样
I'm making a contact form, and it looks like this
<form id="main-contact-form" class="contact-form" name="contact-form" method="post" action="../sendemail.php"> <div class="row-fluid"> <div class="span5"> <label>First Name</label> <input name="first" type="text" class="input-block-level" required="required" placeholder="Your First Name"> <label>Last Name</label> <input name="last" type="text" class="input-block-level" required="required" placeholder="Your Last Name"> <label>Email Address</label> <input name="email" type="text" class="input-block-level" required="required" placeholder="Your email address"> </div> <div class="span7"> <label>Message</label> <textarea name="message" id="message" required class="input-block-level" rows="8"></textarea> </div> </div> <button type="submit" class="btn btn-primary btn-large pull-right">Send Message</button> <p> </p> </form>没有什么太花哨。 sendemail.php看起来像这样
Nothing too fancy. sendemail.php looks like this
<?php header('Content-type: application/json'); $status = array( 'type'=>'success', 'message'=>'Email sent!' ); $name = @trim(stripslashes($_POST['first']." ".$_POST['last'])); $email = @trim(stripslashes($_POST['email'])); $subject = "Monarc - Message From ".$name; $message = @trim(stripslashes($_POST['message'])); $email_from = $email; $email_to = 'xxx@xxx.xxx'; $body = 'Name: ' . $name . "\n\n" . 'Email: ' . $email . "\n\n" . 'Subject: ' . $subject . "\n\n" . 'Message: ' . $message; $success = @mail($email_to, $subject, $body, 'From: <'.$email_from.'>'); echo json_encode($status); die;电子邮件通过,但postdata不会在电子邮件中通过。它表示(未知的发件人)作为发件人,身体看起来像这样:
The email comes through, but the postdata isn't coming through in the email. It says (unknown sender) as the sender, and the body looks like this:
名称:
Name:
电子邮件:
主题:Monarc - 来自
Subject: Monarc - Message From
消息:
我做错了什么?
谢谢!
推荐答案补充信息,此表格使用以下JavaScript文件:
supplementary information, this form uses the following javascript file:
jQuery(function($){
jQuery(function($) {
// Ajax contact var form = $('。contact-form'); form.submit(function {$ this = $(this); $ .post($(this).attr('action'), function(data){ $ this.prev() ).fadeIn()。delay(3000).fadeOut(); },'json'); return false;});
//Ajax contact var form = $('.contact-form'); form.submit(function () { $this = $(this); $.post($(this).attr('action'), function(data) { $this.prev().text(data.message).fadeIn().delay(3000).fadeOut(); },'json'); return false; });
// Goto顶部$('。gototop')。click(function(event){ event.preventDefault(); $('html,body')。animate({ scrollTop:$(body)。offset()。top},500); }); //结束goto top
//Goto Top $('.gototop').click(function(event) { event.preventDefault(); $('html, body').animate({ scrollTop: $("body").offset().top }, 500); }); //End goto top
});
在另一个论坛上搜索我发现如何解决这个问题。您只需在php文件中添加以下代码:
Searching on another forum I found how to fix this. You only need add the following code in the php file:
$headers = "From: mail <$email_from>\r\n"; $headers .= "MIME-Version: 1.0" ."\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";并删除$ success = @mail的@($ email_to,$ subject,$ body, 'from:<'。$ email_from。'>');
and remove "@" of $success = @mail($email_to, $subject, $body,'From: <'.$email_from.'>');
在main.js文件中,您的代码不提供.post中的任何数据) 方法。您需要添加$(this).serialize()以获取所有表单字段/值。
In "main.js" file your code isn't supplying any data in the .post() method. you need to add $(this).serialize() to get all the form fields/values.
未经测试但应该工作 -
untested but should work -
$。post($(this).attr('action'),$(this).serialize(),function(data){
$.post($(this).attr('action'),$(this).serialize(), function(data) {
希望有助于解决问题
更多推荐
发布数据不会来
发布评论