cab*_*ret 4 ajax jquery codeigniter
我正在编写一个简单的登录表单.当用户单击Login按钮时,我想将post值发送到我的控制器,根据我的数据库验证它们(使用模型)并返回一个值.基于该值,我想要将用户发送到成员区域,或者在我的表单上显示错误消息.此错误消息具有类"错误",默认情况下是隐藏的.我想使用jQuery的show()在凭据错误时显示它.
我的表单有两个文本字段,一个用于电子邮件地址,另一个用于密码和提交按钮.但是,我从来没有真正使用Ajax,除了非常基本的东西,如一个简单的加载器,所以我不知道下一步该做什么.
$("#btn_login").click(
function()
{
// get values
var email_address = $("#email_address").val();
var password = $("#password").val();
// post values? and ajax call?
//stop submit btn from submitting
return(false);
}
);
Run Code Online (Sandbox Code Playgroud)
我假设我必须在这里使用jQuery的ajax()方法,所以我在考虑使用这个例子:
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何在数据中获取我的帖子值(这两个变量):thingy ..或者我应该在这里采取另一条路?这似乎是我永远不会忘记在我学习之后该怎么做的事情,所以如果有人可以帮助我,我会感激不尽.非常感谢.
您需要做的就是使用值创建一个键/值对,并将其分配给data参数,jQuery将完成剩下的工作.
//create a js object with key values for your post data
var postData = {
'email' : email_address,
'password' : password
};
$.ajax({
type: "POST",
url: "some.php",
data: postData , //assign the var here
success: function(msg){
alert( "Data Saved: " + msg );
}
});
Run Code Online (Sandbox Code Playgroud)
有了这个,您应该能够使用Codeigniters访问数据 input
编辑
我在这里设置了一个测试小提琴:http://jsfiddle.net/WVpwy/2/
$('#dostuff').click(function(){
var email_address = $("#email_address").val();
var password = $("#password").val();
var postData = {
'email' : email_address,
'password' : password,
'html' : 'PASS'
};
$.post('/echo/html/', postData, function(data){
//This should be JSON preferably. but can't get it to work on jsfiddle
//Depending on what your controller returns you can change the action
if (data == 'PASS') {
alert('login pased');
} else {
alert('login failed');
}
});
});
Run Code Online (Sandbox Code Playgroud)
我只是喜欢.post,但你使用的是等价物.
基本上你的控制器应该回显数据.不归路.您需要发回数据的字符串表示,以便您的脚本可以(评估json)并对其进行操作
这是一个很好的例子作为起点:http://www.ibm.com/developerworks/opensource/library/os-php-jquery-ajax/index.html