【问题标题】:form post variables in controller在控制器中形成 post 变量
【发布时间】:2012-04-30 10:33:30
【问题描述】:

这是我的 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;
}

我无法读取帖子变量,请帮助。 感谢所有的努力

【问题讨论】:

  • var_dump($_POST); 输出什么?
  • 如果您使用 CI,您应该使用输入类,因为它包含安全优势。要获取帖子数据,请使用 $this->input->post() 而不是全局帖子数组。但是,如果全局 post 数组为空,我怀疑您的问题出在 JavaScript(对我来说就像 jquery)。
  • 您也可以将已发送的对象分配给var postData = {name:name, email:email, message:message}; 之类的变量,并与console.log( postData ); 核对,您是否真的发送了任何内容。您也可以在Network 选项卡中的浏览器中(通常)发送了什么以及发送的操作是否已完成。
  • 我假设您发布的 JavaScript 是一个 sn-p。你已经把它包装在 jquery 就绪方法中了吧?

标签: php codeigniter jquery frameworks


【解决方案1】:

尝试在您的帖子请求中使用$("#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)

【讨论】:

  • 那你留下所有的变量是为了什么?在这种情况下,只需要阻止调用和发布。
【解决方案2】:

如果你在做这个跨站,你会遇到跨站问题,因为 .post 是 $.ajax 的包装器

【讨论】:

  • 网址似乎是相对的。
猜你喜欢
  • 1970-01-01
  • 2012-06-26
  • 1970-01-01
  • 2017-06-10
  • 2023-03-10
  • 2017-11-12
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
相关资源
最近更新 更多