私はユーザーが自分が閲覧している記事を電子メールで送信することができる場所を開発中です。私はこれを処理するためにAjaxを使用しています。基本的に、ユーザは自分の電子メール/名前と、そのメッセージが送信されるはずの人の電子メールを追加する。私はcakephp関数に一連のデータを渡す際に問題が発生しています。データは配列内に正確に配置されていますが、私のCakePHP関数、特に送信されている電子メールではそれを見ることができません。CakePHP 1.3:Ajaxを使用した電子メールフォームの処理
私のJavascriptのコード
var dataString = new Array();
dataString[0] = name;
dataString[1] = email;
// This will display Joe Schmoe, [email protected]
alert(dataString); return false;
$('#contact-area').html("<div id='Sending' style='margin-left:410px;color:red;border:1px solid red'>Enviando...Por favor, aguarde um momento!</div>");
$.ajax({
type: "POST",
url: "/articles/enviar",
data: dataString,
success: function() {
$('#Sending').hide();
$('#contact-area').html("<div id='message' style='margin-left:410px;color:red;border:1px solid red'></div>");
$('#message').html("<h3>A Sua Mensagem Ja Foi Enviada!</h3>")
.append("<p>Obrigado.</p>")
.hide()
私のコントローラのアクション
function enviar(){
//debug($emailInfo);
// Send email with new password
$this->Email->to = '[email protected]';//testing without array
$this->Email->subject = 'Hello';//$emailInfo['name'].' - Noticia Na Bravanews';
$this->Email->from = '[email protected]';//testing without array
$this->Email->sendAs = 'html';
$this->Email->template = 'enviar_email';
$this->Email->smtpOptions = array(
'port'=>'465',
'timeout'=>'30',
'host' => 'ssl://smtp.gmail.com',
'username'=>'[email protected]',
'password'=>'xxxxxxxx'
);
$this->Email->delivery = 'smtp';
// this displays as nothing
$this->set('emailInfo', $this->data);
if($this->Email->send()){
return true;
}else{
return false;
}
}
そして、私の電子メールテンプレート
Hello,<br />
<?php e($emailInfo[0]); ?> sugeriu que leias a seguinte notícia na Bravanews.<br>
<?php e($emailInfo[1]); ?><br>
Por favor clique no link abaixo:<br /><br>
<?php debug($emailInfo); ?>
どのように私はこの問題を修正行くのです。私は電子メールのテンプレートに何も転記することができないので、私は印刷するか電子メールで送ることができます。
ありがとう。これはまさに私が間違っていたことです。すべてがうまくいき、私は自分の電子メールテンプレートでフォームデータを読み書きできます。すばらしいです!私は、[Model]を使う必要はありませんでしたが、同じことはかなり... data:{'data [email]':電子メール、 'data [name]':name} –