2011-08-20 79 views
0

我想创建一个简单的消息表单使用navigateToURL()和PHP邮件()。但是我在php页面中重定向这种方法时遇到了问题。我需要它不要重定向页面,但仍然发送到电子邮件。Flash AS3 navigateToURL()和PHP邮件()

这就是我所做的。

AS3

if (e.type == "click") 
    { 

       navigateToURL(new URLRequest("http://somedomain.com/sendme.php?" + "name=" + e.currentTarget.parent.na_txt.text + "&email=" + e.currentTarget.parent.ma_txt.text + "&contact=" + e.currentTarget.parent.co_txt.text + "&message=" + e.currentTarget.parent.me_txt.text + "&sex=" + e.currentTarget.parent.sex), "_self"); 


    } 

PHP

<?php 

$to = "[email protected]"; 
$subject = "Subject"; 

$name = $_GET['name']; 
$sex = $_GET['sex']; 
$email = $_GET['email']; 
$contact = $_GET['contact']; 
$message = $_GET['message']; 

// create email headers 
$headers = 'From: '.$email."\r\n". 
'Reply-To: '.email."\r\n" . 
'X-Mailer: PHP/' . phpversion(); 


$body = "From: $name \r\nGender: $sex \r\nE-Mail: $email \r\nContact No.: $contact \r\n\r\nMessage:\n$message"; 


echo "Thank You $name, Your Feedback and Enquiry has been submitted to <a href='mailto:$to'>$to</a>!"; 

mail($to, $subject, $body, $headers); 


?> 

回答

3

我想你真正想要的是创建一个URLLoader对象来虽然发送您的变数。

// prepare the vars 
var vars:URLVariables = new URLVariables(); 
vars.name = e.currentTarget.parent.na_txt.text; 
vars.email = e.currentTarget.parent.ma_txt.text; 
vars.contact = e.currentTarget.parent.co_txt.text; 
vars.message = e.currentTarget.parent.me_txt.text; 
vars.sex = e.currentTarget.parent.sex; 

// prepare the request 
var request:URLRequest = new URLRequest("http://pennfolio.com/goahead/sendme.php"); 
request.data = vars; 
request.method = URLRequestMethod.GET; 

// prepare loader 
var loader:URLLoader = new URLLoader(); 
loader.addEventListener(Event.COMPLETE,onLoadComplete); 
loader.load(request); 

// handle the response from PHP 
function onLoadComplete(evt:Event):void 
{ 
    evt.target.removeEventListener(Event.COMPLETE,onLoadComplete); 
    trace(evt.target.data); // the output from PHP 
} 

这将运行而无需重新加载页面或打开一个新窗口,允许您维护应用程序的状态。您从PHP回显的文本将在加载完成处理函数中提供,供您向用户显示,但是您可以选择。

+0

感谢您的帮助..是的,它解决了我的问题。谢啦! – Pennf0lio