gpt4 book ai didi

ajax - CakePHP AJAX 调用

转载 作者:行者123 更新时间:2023-11-30 23:59:40 25 4
gpt4 key购买 nike

我正在使用 CakePHP,这是我在此框架上的第一个项目。我将把输入值发送到 UsersControllercheck_username() 操作。并用 check_username() 返回的字符串填充 id na 的元素。到目前为止我所做的是:

//in my form
<input type="text" name="data[User][username]" style="width: 60%" required="required" id="username" oninput="check_username(this.value)">
<label style="margin-left: 20px; color: red" id="na">Not Available!</label>

//after the form
<script type="text/javascript">
function check_username(un) {
$.ajax({
type: 'POST',
url: '/oes/users/check_username',
data: {username:un},
cache: false,
dataType: 'HTML',
beforeSend: function(){
$('#na').html('Checking...');
},
success: function (html){
$('#na').val(html);
}
});
}
</script>

//and my check_username() is
public function check_username(){
return 'Test string';
}

但这不起作用。有人知道为什么或如何修改它以使其正常工作吗?

最佳答案

这可能是您的 check_username Controller 操作出现问题。 CakePHP 方式是使用 JsonView 类发送任何数据并抛出 XHR(请参阅 http://book.cakephp.org/2.0/en/views/json-and-xml-views.html )。它允许您调用任何带有 .json 扩展名的操作(例如:/oes/users/check_username.json)并以序列化 JSON 格式获取响应,而无需在数组数据和 JSON 之间进行手动转换。

此方法是根据您的需要推荐的,但当然不是强制的。

现在我认为 CakePHP 尝试渲染 check_username View ,但无法执行此操作,因为您尚未指定或创建它。尝试将您的操作代码更改为如下所示:

public function check_username(){
$this->autoRender = false;
echo 'Test string';
}

另外,以后尽量不要使用这样的代码构造。

关于ajax - CakePHP AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19071022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com