我正在尝试使用对cakephp控制器的ajax调用来验证输入字段 我的Ajax是:
$("#UserAlphaCode").change(function () {
$.ajax({
type: "post",
url: '<?php echo $this->webroot ?>' + "/alpha_users/checkCode",
data: ({code : $(this).val()}),
dataType: "json",
success: function(data){
alert (data);
},
error: function(data){
alert("epic fail");
}
});
});
我的控制器代码
function checkCode() {
Configure::write('debug', 0);
$this->autoRender = false;
$codePassed = $this->params['form']['code'];
$isCodeValid = $this->find('count',array('conditions'=> array('AlphaUser.code' => $codePassed)));
if ($isCodeValid == 0){
$codeResponse = false;
} else {
$codeResponse = true;
}
echo json_encode ($codeResponse);
}
我很确定我在这里使用$ this-&gt; params错误来访问从ajax请求发送的数据。我应该做什么呢?
答案 0 :(得分:1)
尝试类似:
$codePassed = $_POST['code']
你也可以尝试一下:
$this->log($codePassed,LOG_DEBUG);
在那里某处检查tmp/logs/debug.log
使用firebug将有助于调试传输。
答案 1 :(得分:0)
不知道为什么它会返回null,但我通常使用$this->data
来获取表单数据。
你试过debug($this->params)
吗?如果您没有非AJAX表单来测试请求,请使用Firebug或Wireshark来查看服务器返回debug()
调用的内容 - 因为它会因为不在调用而破坏jQuery的AJAX处理程序JSON。