0

我一直在寻找解决我正在尝试重新使用的 PHP 脚本的特定问题的解决方案。

<?php $name = $_POST['name'];
$company = $_POST['company'];
$email = $_POST['email'];
$message = $_POST['message'];
$formcontent = "$name \nMessage: $message";
$recipient = "me@me.com";
$subject = "Contact Form";
$mailheader = "From: $email \r\n";
mail($recipient, $subject, $formcontent, $mailheader) or die ("Error!");
echo "Thank You!" . " -" . " <a href = '../index.html' style = 'text-decoration:none;color:#ff0099;'>Return Home</a>";
?>

我不想重新定向到另一个页面,而是渴望了解一种通过模式弹出窗口启动确认的简洁方法。

我将脚本作为外部文件运行,所以我猜答案已经有一半了,但就调用 jQuery 插件来完成其余工作而言,我可以使用一两个指针!

4

4 回答 4

1
  • 将所有 html 输入包装在一个表单元素中。
  • 单击发送邮件链接,附加一个 ajax 事件以向包含发送邮件的业务逻辑的 php 文件发送一个 ajax POST 请求(如您的问题所示)。
  • 然后在事件成功时,您可以向用户显示成功消息。
  • 为了用最少的代码实现这一点,我建议您结合使用 JQuery(对于 ajax 表单帖子)和 Twitter Bootstrap(对于 CSS 和模式窗口)
  • 下面的代码之类的一些实现可能会对您有所帮助

$('#divId').click(function () {

//start the ajax
$.ajax({
    //this is the php file that processes the data and send mail
    url: "send_mail.php",

    //POST method is used
    type: "POST",
    // here we are serializing all form values ( its is not php serialize)
    data: $("#Form").serialize(),
    //Do not cache the page
    cache: false,

    //success
    success: function (html) {             
        if (html=='1') {    
            $('#divModal').modal('show') ; 

        }              
    }      
});

//cancel the submit button default behaviours
return false;

});

于 2012-11-02T15:06:24.737 回答
1

如果您不想重新加载或重定向到新页面,则需要通过 AJAX 发布。

在 AJAX 调用的“成功”方法上,您将触发您的对话框。

于 2012-11-02T14:49:12.527 回答
0

或者您可以在 onsubmit 属性中使用它

onSubmit="javascript: return confirm('Are you sure you want to submit this?');"

将要求确定/取消确认

--- jQuery Ajax -----

function doSubmit(){
  var postData = jQuery('#your-form-id').serialize();    

  jQuery.ajax({
    url: 'form-action.php',
    data: postData
  }).done(function( html ) {
    alert(html);
  });
}

-- 在你的表单标签中 ---

<form id="your-form-id" onsubmit="javascript: doSubmit();" ...
于 2012-11-02T14:53:55.490 回答
0

正如 Diodeus 建议的那样,您应该使用 HTTP 请求来调用您的 php 文件。使用从请求中返回的输出,您可以创建一个弹出窗口或任何您想通知用户的内容。在这里,您可以找到有关如何执行此操作的一些基本信息。

于 2012-11-02T14:54:58.870 回答