我正在尝试使用发送电子邮件的Javascript/AJAX函数(使用PHP页面)。如何使用OnComplete?
功能是:
new Request({
method: "post",
data: this,
onRequest: function() {
$('amCallMeBackForm').empty().addClass('amCallMeBackWait');
$('callback').setStyle('background', 'url(\'http://www.mysite.it/modules/mod_amcallmeback/assets/sfondo_callback.png\') no-repeat transparent');
$('callback').setStyle('height', '73px');
},
onComplete: function(response) {
$('amCallMeBackForm').removeClass('amCallMeBackWait');
$('amCallMeBackForm').addClass('amCallMeBackSent');
alert(response);
}
}).send();
});
它工作正常,但如果我这个代码我不能管理从PHP页面,则响应:
<?php
class modAmCallMeBackHelper
{
function send($params) {
// Check for request forgeries
JRequest::checkToken() or die('Invalid Token');
// get data
$name = JRequest::getVar('name', '');
$rif = JRequest::getVar('rif', '');
$phone = JRequest::getVar('phone', '');
$uri = JRequest::getVar('uri', '');
// get module params
$subject = $params->get('mail_subject');
$reciptient = explode(',', $params->get('receipt_email'));
$app = JFactory::getApplication();
$sender = array($app->getCfg('mailfrom'), $app->getCfg('fromname'));
// make email
$Body = '<strong>Azienda:</strong> '.$name."<br />";
$Body .= '<strong>Riferimento:</strong> '.$rif."<br />";
$Body .= '<strong>Numero di telefono:</strong> '.$phone."<br />";
$Body .= '<strong>Pagina da cui è stato richiesto il contatto:</strong> <a href='.$uri.'>'.$uri."</a>";
$mailer =& JFactory::getMailer();
$mailer->setSender($sender);
$mailer->addRecipient($reciptient);
$mailer->setSubject($subject);
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setBody($Body);
if ($name == '' || $rif == '' || $phone == '' || $name == 'Azienda' || $rif == 'Riferimento' || $phone == 'Telefono') {
} else {
$send =& $mailer->Send();
}
if ($send != true) {
return 'no';
} else {
return 'ok';
}
}
}
?>
当显示警报(响应)我可以从页面看到整个html代码(包含),但我无法仅显示PHP页面中的“返回”。
我在做什么错?
您可以在这里查看我的问题的一个例子:http://www.sevenit.it(3秒后在页面右上角的检查)
感谢
我没有看到代码中指定PHP脚本路径的任何地方。除非路径/ url在'Request'对象的代码中硬编码,否则该对象可能会尝试发布到'/'页面,该页面会按原样返回主页的HTML内容。 – 2013-05-08 09:16:18
我认为这是因为它调用了一个内部的Joomla句柄页面,它接收数据。无论如何,表单动作设置为<?php echo $ _SERVER ['REQUEST_URI']; ?>。你认为我应该指定的网址? – Pepozzo 2013-05-08 09:47:45