0

メールを送信する Javascript/AJAX 関数を使用しようとしています (PHP ページを使用)。

機能は次のとおりです。

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 &egrave; 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 秒後にページの右上を確認してください)

ありがとう

4

1 に答える 1

1
alert(response.responseText);  

私が信じている方法です。

編集:または、やりたいことは次のとおりです。

$('#amCallMeBackForm').html(response.responseText)

あなたが何を求めているのか100%確信が持てません。

于 2013-05-08T09:06:49.017 に答える