1

Codeigniter で AJAX 連絡フォームを設定しようとしています。CIを使うのは初めてです。

私はそれを機能させていましたが、今では壊れていて、その理由がわかりません。

これがコードです..

JS

$.ajax({
        type:'POST',
        url: post_url,
        data: post_data,
        beforeSend:function(){
            alert(this.data);  <<< This is alerting the correct form data to me
        },
        success:function(msg){
            $($form).fadeOut(500, function(){
                var msg = '<div class="messageSent"><p>'+ msg +'</p></div>';
                $form.html(msg).fadeIn();  <<< This is returning undefined
            });
        }
    });

..そしてPHP ...

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Email extends CI_Controller{


 public function __construct()
   {
        parent::__construct();
        $this->load->library('email');
   }



public function index(){

$emailFromName = $this->input->post('name', TRUE);
$emailFromAddress = html_entity_decode($this->input->post('email', TRUE));
$emailFromMessage = "Email from the Brewer's website\n";
$emailFromMessage .= "==============================\n";
$emailFromMessage .= "From: " + $emailFromName + "\n";
$emailFromMessage .= "==============================\n";
$emailFromMessage .= "Respond Email; " + $emailFromAddress +"\n";
$emailFromMessage .= "==============================\n";
$emailFromMessage .= $this->input->post('message', TRUE);


$this->email->from($emailFromName);
$this->email->to('recipient@gmail.com'); 
$this->email->subject('Message from the website.');
$this->email->message($emailFromMessage);   

$this->email->send();

echo $this->email->print_debugger();  // echoes undefined
// echo($emailFromName);  // also echoes undefined
}
}

?>

問題はPHPにあるに違いないと思います..投稿された変数を読み取っていないようです。$this->input->post('name'); をエコーすることさえできません。(私はそれを機能させましたが!)

..だから私は何を間違っているのですか?

注 - メール addy が「address%40gmail.com」として投稿されていることに気付いたので、そこに html_entity_decode を入れました。それは必要ですか?

4

1 に答える 1

0

厳密に言えば、これはあなたの質問に対する答えではありませんが、CodeIgniter プロジェクトのメール機能を安定させるのに非常に苦労しました。私が見つけた解決策の実装には約 1 時間かかりました。これで 10 時間のトラブルを回避できたと思います。

「SwiftMailer」フレームワークを使用してアプリケーションからメールを送信することを検討してください。強力で信頼性の高い php メール フレームワークであり、無料です。最初は 2 つのフレームワークを統合するのに苦労しましたが、このブログを見つけて数分で完了しました。

http://grafikkaos.co.uk/blog/article/101-using-swift-mailer-with-codeigniter

于 2012-08-28T15:29:11.157 に答える