错误:带有sqlsrv ajax方法的boolean上的result_array()

时间:2018-01-06 06:54:02

标签: jquery sql-server ajax codeigniter

我正在使用Microsoft SQL Server Management Studio 2014,并且我已经在CI上配置了所有内容,我不知道为什么会发生这种情况,但它真的让我很烦恼。

我有一个存储过程,这就是我将要使用的,例如我的存储过程是:

 create procedure [dbo].[set_add_user_i]
  @firstname varchar(50),
  @lastname varchar(50)
 as
 begin try
   insert into [Users](Firstname,Lastname)
   values(@firstname,@lastname)
 end try
 begin catch
   select 'Error' as result;
 end catch

然后在我的CI_Model

 public function set_add_user($param){
    $query = $this->db->query("exec set_add_user_i
                                                    '".$param["firstname"]."',
                                                    '".$param["lastname"]."'
                                                    ");


    return $query->result_array();
}   

我使用exec来调用存储过程并从@firstname和@lastname

中输入参数

然后在我的CI_Controller

 public function add_user(){
    $data = $this->My_Model->set_add_user( array(
        'firstname' => trim($this->input->post('firstname')),
        'lastname'  => trim($this->input->post('lastname'))
    ));

    echo json_encode($data);
}

这是使用ajax方法从我的视图调用post数据我做了这件事:

    AddUsers                                    : function (e,data)                     {

        var $tmp = ( typeof(e) == 'object' ) ? 1 : 2,
            $self = AddUser.config;

        if($self.txt_add_last_name.val() == ''){
            $self.txt_add_last_name.focus();
            return false;
        }
        if($self.txt_add_first_name.val() == ''){
            $self.txt_add_first_name.focus();
            return false;
        }           

        switch($tmp) {
          case 1: 
            var $data = {
                'firstname'  : $self.txt_add_first_name.val(),
                'lastname'   : $self.txt_add_last_name.val()
            };
            AddUser.CallAjax('add_user', $data, 1); 

          break; 
          case 2:
            alert('User Successfully Added!');

          break;        
        }
    },
    CallAjax                                    : function (url, data, type)            { 
            var $self = AddUser.config;
            $.ajax({
                    type: 'POST',
                    url: url,
                    data: data,
                    dataType:'json',
                    success: function(evt){ 
                            console.log(evt);
                            if(evt){
                                    switch(type){
                                            case 1: AddUser.AddUsers(2,evt); break;
                                    }    
                            }
                    },
                    error: function(jqXHR, textStatus, errorThrown){
                            alert('error: ' + textStatus + ': ' + errorThrown);
                    }
            });                 
    }

第一个函数是事件点击,它将获得控制器方法add_user,数据在$ data变量中,然后将其传递给Callajax函数,我将案例1放在callajax上,(2,evt)将回到案例2:AddUsers函数,但是当我点击它时,它会显示给我

致命错误:在布尔值

上调用成员函数result_array()

它有什么问题吗?没有它的原因,它不会进入callajax函数,因为它没有返回值。我需要一些帮助。非常感谢你

0 个答案:

没有答案