ajax - CodeIgniter/Ajax - 将后值发送到 Controller

标签 ajax codeigniter jquery

我正在制作一个简单的登录表单。当用户单击“登录”按钮时,我想将发布值发送到我的 Controller ,根据我的数据库(使用模型)验证它们并返回一个值。根据该值,我想将用户发送到成员(member)区域,或者在我的表单上显示错误消息。该错误消息有一个“错误”类,默认情况下是隐藏的。我想使用 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);

    }
);

我假设我必须在这里使用 jQuery 的 ajax() 方法,所以我正在考虑解决这个例子:

$.ajax({
     type: "POST",
     url: "some.php",
     data: "name=John&location=Boston",
     success: function(msg){
        alert( "Data Saved: " + msg );
     }
});

但是,我不太确定如何在数据中获取我的帖子值(这两个变量):thingy..或者我应该在这里走另一条路?这似乎是我一旦学会后就永远不会忘记的事情,所以如果有人可以帮助我,我将不胜感激。非常感谢。

最佳答案

您需要做的就是创建一个带有值的键/值对并将其分配给数据参数,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 );
     }
});

有了这个,您应该能够使用 Codeigniters input 访问数据

编辑

我在这里设置了一个测试 fiddle :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');
        }
    });
});

我只是更喜欢 .post,但你使用的是等效的。

基本上,您的 Controller 应该回显数据。不归。您需要发送回数据的字符串表示形式,以便您的脚本可以(评估 json)并对其进行操作

这里有一个很好的例子作为起点:http://www.ibm.com/developerworks/opensource/library/os-php-jquery-ajax/index.html

关于ajax - CodeIgniter/Ajax - 将后值发送到 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5529609/

相关文章:

php - 使用 Codeigniter AJAX 返回 ERR_CONTENT_DECODING_FAILED 200

javascript - 循环遍历范围并使用 jQuery 将值分配给最近的下拉列表

javascript - JS HTML : Get particular column value after button click

javascript - xmlhttp 未定义。 JavaScript Ajax

javascript - 通过 JQuery AJAX 一起发送 FormData 和字符串数据?

php - 处理两个不同数据库时,在 Code Igniter 中正确设置 mysql pconnect

php - CodeIgniter - 从本地主机连接时出现数据库错误

javascript - 有没有办法监视对象的更改?

jquery - 传递 Bootstrap DateTimePicker 的默认日期

php - Ajax发送变量到php未定义索引