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 を入れました。それは必要ですか?