在控制器中形成post变量

时间:2012-04-30 10:33:30

标签: php codeigniter jquery frameworks

这是我的javascript视图,控制器正在调用。 的JavaScript

$('#contact').submit(function(e){
e.preventDefault();
var name= $('input[name=contactname]').val();
var email= $('input[name=contactemail]').val();
var message= $('textarea[name=message]').val();
$.post("index.php/homepage/sendMail",{name:name, email:email, message:message},
function(){
   $('#contactUsMask').hide();
   $('#contactAckMask').show();
   });
});

控制器

$from = $_POST['email'];
$msg = $_POST['message'];
$name = $_POST['name'];

$config['protocol'] = 'sendmail';
$config['mailpath'] = '/usr/sbin/sendmail';
$config['mailtype'] = 'html';
$config['charset'] = 'iso-8859-1';
$config['wordwrap'] = TRUE;

$this->email->initialize($config);
$this->email->from($from, $name);
$this->email->to($to);
$this->email->subject($sub);
$this->email->message($msg);
if($this->email->send())
{
    return true;
}
else
{
    echo $this->email->print_debugger();
    return false;
}

我无法阅读帖子变量,请帮忙。 所有努力都赞赏

2 个答案:

答案 0 :(得分:0)

尝试在您的帖子请求中使用$("#testform").serialize(),例如

$('#contact').submit(function(e){
e.preventDefault();
$.post("index.php/homepage/sendMail",$("#contact").serialize(),
function(){
   $('#contactUsMask').hide();
   $('#contactAckMask').show();
   });
});

在您的控制器中,您必须使用$this->input->post('email');来获取电子邮件值。 正如他们所说的尝试做var_dump($_POST)

答案 1 :(得分:-1)

如果您正在执行此跨站点,则遇到跨站点问题,因为.post是$ .ajax的包装器