用php处理Wordpress Ajax表单
我的网站上有一个表单,目前正在发布到一个php文件中。现在,当提交表单时,它将用户带到空白PHP文件。我想让它在处理邮件功能后通过ajax发布或重定向。 谢谢 HTML:用php处理Wordpress Ajax表单,php,ajax,wordpress,jquery,Php,Ajax,Wordpress,Jquery,我的网站上有一个表单,目前正在发布到一个php文件中。现在,当提交表单时,它将用户带到空白PHP文件。我想让它在处理邮件功能后通过ajax发布或重定向。 谢谢 HTML: 我通过添加以下代码解决了这个问题 更新: HTML: url:“,是否有错误。。???你不认为它会出错吗?这是使用wordpress和ajax@DipeshParmar-它包含在我的页脚中file@Mark我的意思是你需要转义”,比如url:“,或者使用”url:“,哦,这就是问题所在?-还有,在functions.php中,
我通过添加以下代码解决了这个问题 更新: HTML:
url:“,
是否有错误。。???你不认为它会出错吗?这是使用wordpress和ajax@DipeshParmar-它包含在我的页脚中file@Mark我的意思是你需要转义”
,比如url:“,
或者使用”
url:“,
哦,这就是问题所在?-还有,在functions.php中,我在哪里添加了我的邮件脚本?
<form method="post" id="formApply" action="<?php bloginfo('template_url');?>/inc/sendContact.php" name="applyForm">
<div id="col1">
<fieldset class="col-1">
<div class="white info-line">Want to know more? Drop us a line and we'll get right back to you.</div>
<label class="white text-label name" for="fname">Name:</label><input type="text" name="fname" id="fname" tabindex="1" />
<div class="clear"></div>
<label class="white text-label email" for="email">Email:</label><input type="email" class="lower" name="email" id="email" tabindex="2"/>
<div class="clear"></div>
<label class="white text-label phone" for="phone">Phone:</label><input type="tel" name="phone" id="phone" tabindex="3" maxlength="10"/>
<div class="white text-label checker-title" id="checkererror">I am interested in:</div>
<input type="checkbox" id="checkbox-2-1" class="regular-checkbox big-checkbox" name="checker[]" value="Office Space" /><label for="checkbox-2-1"></label><div class="white text-label checker">Office Space</div>
<input type="checkbox" id="checkbox-2-2" class="regular-checkbox big-checkbox" name="checker[]" value="Designated Workspace" /><label for="checkbox-2-2"></label><div class="white text-label checker">Designated Workspace</div>
<input type="checkbox" id="checkbox-2-3" class="regular-checkbox big-checkbox" name="checker[]" value="Shared Space" /><label for="checkbox-2-3"></label><div class="white text-label checker">Shared Space</div>
</fieldset>
</div>
<div id="col2">
<fieldset class="col-2">
<label class="white text-label note-label" for="notes">Notes:</label><br/>
<textarea name="notes" id="notes" rows="10" cols="30" class="requiredField" tabindex="4"></textarea>
<input type="hidden" name="submitted" id="submitted" class="submitted" value="true" /><button id="submit" type="submit">Submit Application</button>
</fieldset>
</div>
</form>
require_once 'lib/swift_required.php';
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$name = Trim(stripslashes($_POST['fname']));
$email = Trim(stripslashes($_POST['email']));
$phone = Trim(stripslashes($_POST['phone']));
$notes = Trim(stripslashes($_POST['notes']));
$checkbox = $_POST['checker'];
$message = Swift_Message::newInstance()
->setFrom(array('From_Email' => 'My Website'))
->setSubject('[My_Subject from '.$name.']')
->setTo(array('My_Email'))
->setBody(
'<html>'.
'<head></head>'.
'<body>'.
'<strong>Name:</strong><br />'.
$title.' '.$name.'<br /><br />'.
'<strong>Email Address:</strong><br />'.
$email.'<br /><br />'.
'<strong>Phone Number:</strong><br />'.
$phone.'<br /><br />'.
'<strong>Interested in:</strong><br />'.
implode('<br />', $checkbox).'<br /><br />'.
'<strong>Message:</strong><br />'.
$notes.'<br /><br />'.
'</body>'.
'</html>',
'text/html' );
$result = $mailer->send($message);
jQuery(document).ready(function() {
jQuery("#submit").click(function(){
jQuery.ajax({
type: 'POST',
url: '<?php echo admin_url('admin-ajax.php');?>',
data: {
action: 'MyAjaxCallBack',
MyParam: 'MyParamValue'
},
success: function(data, textStatus, XMLHttpRequest){
alert(data);
},
error: function(MLHttpRequest, textStatus, errorThrown){
alert(errorThrown);
}
});
});
function MyAjaxCallBack()
{
foreach($_POST as $key=>$value)
$$key = $value;
die('Email script will go here!');
}
// creating Ajax call for WordPress
add_action('wp_ajax_nopriv_MyAjaxCallBack', 'MyAjaxCallBack');
add_action('wp_ajax_MyAjaxCallBack', 'MyAjaxCallBack');
<form method="post" id="formApply" action="<?php bloginfo('template_url');?>/inc/sendContact.php" name="applyForm">
<div id="col1">
<fieldset class="col-1">
<div class="white info-line">Want to know more? Drop us a line and we'll get right back to you.</div>
<label class="white text-label name" for="fname">Name:</label><input type="text" name="fname" id="fname" tabindex="1" />
<div class="clear"></div>
<label class="white text-label email" for="email">Email:</label><input type="email" class="lower" name="email" id="email" tabindex="2"/>
<div class="clear"></div>
<label class="white text-label phone" for="phone">Phone:</label><input type="tel" name="phone" id="phone" tabindex="3" maxlength="10"/>
<div class="white text-label checker-title" id="checkererror">I am interested in:</div>
<input type="checkbox" id="checkbox-2-1" class="regular-checkbox big-checkbox" name="checker[]" value="Office Space" /><label for="checkbox-2-1"></label><div class="white text-label checker">Office Space</div>
<input type="checkbox" id="checkbox-2-2" class="regular-checkbox big-checkbox" name="checker[]" value="Designated Workspace" /><label for="checkbox-2-2"></label><div class="white text-label checker">Designated Workspace</div>
<input type="checkbox" id="checkbox-2-3" class="regular-checkbox big-checkbox" name="checker[]" value="Shared Space" /><label for="checkbox-2-3"></label><div class="white text-label checker">Shared Space</div>
</fieldset>
</div>
<div id="col2">
<fieldset class="col-2">
<label class="white text-label note-label" for="notes">Notes:</label><br/>
<textarea name="notes" id="notes" rows="10" cols="30" class="requiredField" tabindex="4"></textarea>
<input type="hidden" name="submitted" id="submitted" class="submitted" value="true" /><button id="submit" type="submit">Submit Application</button>
</fieldset>
</div>
</form>
require( '../../../../wp-blog-header.php' );
require_once 'lib/swift_required.php';
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance($transport);
$name = Trim(stripslashes($_POST['fname']));
$email = Trim(stripslashes($_POST['email']));
$phone = Trim(stripslashes($_POST['phone']));
$notes = Trim(stripslashes($_POST['notes']));
$checkbox = $_POST['checker'];
$adminEmail = get_bloginfo('admin_email');
$message = Swift_Message::newInstance()
->setFrom(array('From_Email' => 'My Website'))
->setSubject('[My_Subject from '.$name.']')
->setTo(($adminEmail))
->setBody(
'<html>'.
'<head></head>'.
'<body>'.
'<strong>Name:</strong><br />'.
$title.' '.$name.'<br /><br />'.
'<strong>Email Address:</strong><br />'.
$email.'<br /><br />'.
'<strong>Phone Number:</strong><br />'.
$phone.'<br /><br />'.
'<strong>Interested in:</strong><br />'.
implode('<br />', $checkbox).'<br /><br />'.
'<strong>Message:</strong><br />'.
$notes.'<br /><br />'.
'</body>'.
'</html>',
'text/html' );
$result = $mailer->send($message);
$url = home_url('/#apply');
die(header("Location: $url", true));