【发布时间】:2014-09-05 20:38:30
【问题描述】:
这是我第一次在这个网站上发帖,希望有人能提供帮助。
我有一个时事通讯注册系统。表单调用处理脚本,但在运行时,它会输出到另一个页面。
我希望它在同一页面上处理,并输出适当的消息。
经过一番研究,我能找到的衣柜是这篇文章:similar question
这是我正在使用的代码:
HTML
<h6 class="mailingHeadine">Join Our Mailing List</h6>
<!-- start newsletter -->
<form id="mailing_list" name="mailing_list" action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST" >
<!-- start maillist -->
<div class="maillist">
<input type="text" id="e_mail" name="e_mail" value="Enter Your Email" onfocus="if(this.value=='Enter Your Email')this.value=''; this.className='email'" onblur="if(this.value=='')this.value='Enter Your Email'; this.className='email'" />
<p class="submit"><button type="submit" name="e_submit" value="Subscribe" id="submit">Join</button></p>
</div><!-- end maillist -->
</form><!-- end newsletter -->
<div id="formResponse" style="display: none;"></div>
页内脚本
<script type="text/javascript">
$("#mailing_list").submit(function() {
$.post('link-to-script.php', {email: $('e_mail').val(), e_submit: 'yes'}, function(data) {
$("#formResponse").html(data).fadeIn('100');
$('#e_mail').val(''); /* Clear the inputs */
}, 'text');
return false;
});
</script>
PHP
<?php include('loader.php'); ?>
<?php include('head.php'); ?>
<?php
if(defined('SMTP') && SMTP == 'true')
{
include('class.phpmailer.php');
}
?>
<!-- MAIN -->
<div id="main" class="container-fluid">
<!-- container content -->
<div class="container-fluid">
<!-- row-fluid -->
<div class="row-fluid">
<?php if(isset($_POST['e_submit']) && strlen($_POST['e_mail']) !== 0) { ?>
<?php
// The system settings
include('settings.php');
// grab the user email
$email = $_POST['e_mail'];
// validate the email
if(substr_count($email,'@') == 1 && substr_count($email,'.') >= 1)
{
// check if user is already subscribed - avoids duplications
$results = $script->checkSubscription($email);
// subscribe the user
if(empty($results))
{
$subscribe_user = $script->subscribeUser($email);
// Notify Admin that an user as been subscribed
if($subscribe_user)
{
if($options['script_notifications'] == 'subscriptions' || $options['script_notifications'] == 'both')
{
$subject = 'Subscription Notification ID-'.mt_rand(0, 5).': Subscription for: '.$email;
$message = str_replace('{EMAIL}', $email, $options['script_notification_message']);
$message_send = str_replace('{ACTION}', $translate->__('cancels subscription'), $message);
if(defined('SMTP') && SMTP == 'false')
{
$from = $options['script_email'];
$headers = "From: {$from}\r\n";
$headers .= "X-Mailer: script\r\n";
$headers .= "Content-Type: text/html; charset=utf-8";
if($subscribed)
{
@mail($from, $subject, $message_send, $headers);
}
} elseif(defined('SMTP') && SMTP == 'true') {
$mail = new PHPMailer;
$mail->IsSMTP();
$mail->Host = SMTP_HOST;
if(defined('SMTP_AUTH') && SMTP_AUTH == 'true')
{
$mail->SMTPAuth = true;
$mail->Username = SMTP_USERNAME;
$mail->Password = SMTP_PASSWORD;
} else {
$mail->SMTPAuth = false;
}
$mail->From = $options['script_email'];
$mail->FromName = 'script';
$mail->IsHTML(true);
$mail->Subject = $subject;
$mail->AddAddress($options['script_email']);
$mail->Body = $message_send;
}
}
echo '
<div class="alert alert-success tac">
<img src="images/done.png" width="48" height="48" alt="done"/>
<p>Thank you for subscribing to our Newsletter.</p>
</div>
';
} else {
echo '
<div class="alert alert-error tac">
<img src="images/failed.png" width="48" height="48" alt="failed"/>
<p>Error occured while subscribing you.</p>
</div>
';
}
} else {
echo '
<div class="alert alert-error tac">
<img src="images/failed.png" width="48" height="48" alt="failed"/>
<p>You are already subscribed to our newsletter.</p>
</div>
';
}
} else {
?>
<div class="alert alert-error tac">
<img src="images/failed.png" width="48" height="48" alt="failed"/>
<p>Invalid E-mail Address</p>
</div>
<?php
}
?>
<?php } else { ?>
<div class="alert alert-error tac">
<img src="images/failed.png" width="48" height="48" alt="failed"/>
<p>You must have an e-mail address in order to subscribe to newsletter</p>
</div>
<?php } ?>
</div><!-- // .row-fluid -->
</div>
<!-- // end content -->
</div>
<!-- // END MAIN -->
</body>
</html>
它只是有点工作。它运行 PHP 脚本并始终输出“您必须有一个电子邮件地址才能订阅时事通讯”,这是 PHP 代码的最后一行。
任何帮助将不胜感激。
【问题讨论】:
标签: javascript php jquery html