猿问

ajax数据在MVC的控制器功能中变得空

我是 ajax 和 MVC 框架的初学者。我必须使用 ajax 找到移动存在或不存在。我试过下面的代码。


看法


if(mno.match(phoneno)){

//alert(mno);

 $.ajax({

              url: "/api/sales/existmobile",

              type:"POST",

              //ContentType: 'application/json',

             // dataType: "json",

              //async: false,

              //data:{'data': mno},

              //data:{data: JSON.stringify(mno)},

              data:{data: JSON.stringify(6547655566)},

              success: function (data, textStatus, jqXHR) {

                 console.log('success',data);

                    if(data === false){

                    alert('Mobile number already exists!');

                    $( "#custmobilenumber" ).focus();

                    }              

              },  

              error: function (jqXHR, textStatus, errorThrown) {

                  console.log(textStatus);

              }

        });

}  

路线


case "sales/existmobile":

            $sale = new Sale($data);

            $result = $sale->checkMobileExistSale($result);

            break;

控制器


public function checkMobileExistSale($result)

    {

        print_r($this->data);

        // $custMdl = new CustomerModel();

        //  $mobileExistResult = $custMdl->checkMobileExist($this->data);

        // return $mobileExistResult;

    }

模型


public function checkMobileExist($mobile){

        $sql          = 'SELECT * FROM customers WHERE mobile= :mobile';

        $placeholders = [':mobile'=>$mobile];

        $users = $this->select($sql, $placeholders);

        if (count($users) > 0) {

            return false;

        } else {

            return true;

        }

    }

当我打印在控制器中传递的 ajax 数据时,它就会变为空。在检查的 Network(XHR)->Headers->form data 中,我可以看到从 ajax 传递的数据。但是 Network(XHR)->Response,它显示为空。


我用 stackoverflow anwsers 和谷歌搜索找到的所有可能方法进行了调试,但没有用。我不知道代码哪里出错了。


请帮助和指导。提前致谢。


慕工程0101907
浏览 96回答 2
2回答

九州编程

在 ajax 中你使用的是 post 方法,那么你必须在控制器中使用$this->input->post('data');试试这个对你有用

繁星coding

我已经为您的问题编写了一个可能的修正代码,我在必要时提到了评论,看看它是否对您有帮助。:)路线case "sales/existmobile":            $sale = new Sale($data);            $result = $sale->checkMobileExistSale($data); // send $data here not $result            break;控制器public function checkMobileExistSale($result)    {        echo $result;        // print_r($result);        // or try $result = $this->input->post();        // $custMdl = new CustomerModel();        //  $mobileExistResult = $custMdl->checkMobileExist($result); // send relevant data here        // return $mobileExistResult;    }
随时随地看视频慕课网APP
我要回答