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 的数据时,它来为空。在检查的网络(XHR(->标头->表单数据中,我可以看到从ajax传递的数据。但是网络(XHR(->响应,它显示空。

我用我能找到的所有可能的方式调试了堆栈溢出和谷歌搜索,但没有用。我没有明白代码出错的地方。

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

在ajax中你正在使用post方法,那么你必须在控制器中使用

$this->input->post('data');

试试这个它会为你工作

我已经为您的问题编写了可能的纠正代码,我在必要时提到了注释,看看它是否对您有帮助。 :)

路线

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;
}

相关内容

  • 没有找到相关文章

最新更新