如何将JSON数据发布到CodeIgniter控制器?

时间:2012-02-18 05:21:46

标签: jquery codeigniter

我有一个简单的jQuery post函数,它将JSON数据发布到CodeIgniter控制器。该帖子从客户端成功,但我没有收到服务器的响应。我对CI很新,所以我确定我做错了。

function post(){
        $.post("<?php echo base_url();?>index.php/user/create", {username:"testUser",password:"userpassword"},function(data) {
                var test = data;
        });
    }

所以我将两个字符串传递给用户控制器的创建操作。测试我只是试图从发布的数据中获取'用户名'并将其发送回调用函数。目前回复是空的。

 public function create(){
        if($this->input->post('newuser')){
            $username = $this->input->post('username');
            $password = $this->input->post('password');

            echo json_encode(array('username'=>$username));
}

有人能给我一个暗示吗?

2 个答案:

答案 0 :(得分:0)

您正在检查帖子是否包含密钥newuser但是,您只发送了2个字符串,其中包含密钥'username'和'password'。您需要将JavaScript部分修改为以下内容:

$.post("<?php echo base_url();?>index.php/user/create", {newuser: 1, username:"testUser",password:"userpassword"}...

或者,只需从if函数中删除create()语句。

答案 1 :(得分:0)

<script type="text/javascript">
 function post(){
  var url ="<?php echo base_url();?>index.php/user/create";
   $.post(url, {username:"testUser",password:"userpassword"},function(data) {
      console.log(data);
      var test = data;
   });
 }
</script>

控制器

在您的控制器中,您使用post方法检查新用户,如果条件为false且响应为null,则您没有发送新用户 你应该检查

  

$这 - &GT;输入 - &GT;柱(&#39;用户名&#39)

public function create(){
  if($this->input->post('username')){
    $username = $this->input->post('username');
    $password = $this->input->post('password');

    echo json_encode(array('username'=>$username));
  }
}