【问题标题】:How to send data $_POST from AJAX to controller in CodeIgniter?如何将数据 $_POST 从 AJAX 发送到 CodeIgniter 中的控制器?
【发布时间】:2015-02-25 12:26:50
【问题描述】:

我正在使用 Codeigniter MVC 创建一个应用程序,但是我在将数据从 AJAX 帖子发送到我的控制器时遇到问题。我收到这样的错误:

错误:运算符不存在:字符变化 = 整数第 3 行:WHERE "nip" = 0 ^ 提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换

型号代码:

// model m_members
    function get_name($nip)
    {
        $this->load->database();
        $this->db->select('name');
        $this->db->where('nip', $nip);
        return $this->db->get('student')->result_array();
    }

控制器:

function insert_member()
{
    $this->load->model('m_members');
    $data['type'] = $this->m_members->type_member(); //another function
    $nip = $this->input->post('nip');
    $data = $this->m_members->get_name($nip);
    echo json_encode($data);

    $this->load->view('add_members',$data); 

}

查看:

// view
<input type="text" id="username" name="username" placeholder="Username*">
<input type="text" id="name" name="username" placeholder="Name *">

我的 JavaScript:

$(document).ready(function() {
    $("#username").keyup(function() {
        var nip = $('#username').val();
        $.ajax({
            type    : "POST",
            data    : "nip="+nip,
            url     : "add_members/insert_member",
            dataType: "json",
            success: function(data){
            $("#name").val(data.name);
            }
        });
    });

});

这是我的桌子

//my table
nip  | name  | address
--------------------------
1212 | David | 1428 Hannah Street
--------------------------

如何解决?

【问题讨论】:

    标签: php ajax codeigniter


    【解决方案1】:

    请更改您在 ajax 中的数据代码:

    数据:“nip="+nip,

    数据:{nip:nip},

    【讨论】:

    • 仍然收到错误“错误编号:错误:运算符不存在:字符变化 = 整数第 3 行:WHERE “nip”= 0 ^ 提示:没有运算符与给定名称和参数类型匹配. 您可能需要添加显式类型转换。 SELECT "name" FROM "student" WHERE "nip" = 0 文件名:E:\xampp\htdocs\student\system\database\DB_driver.php 行号:331
    • 您在 keyup 函数上调用 ajax,该函数将在每次按键时调用 insert_member 并逐个传递字母。我认为您想在 ajax 中传递完整的用户名,然后想从 ajax 函数中匹配它,所以你可以调用 onchange 而不是 keyup。另外,在 insert_member 中, echo $this->input->post('nip');如果上述条件不是您所需要的,请检查您得到的结果。
    • @dogol,看起来where 需要一个字符串,但您传递的是一个整数。尝试在您的 PHP 控制器中传递 (string) $nip。不过我不知道 CI - 确保它为您转义/绑定,以避免 SQL 注入。
    • 已解决:请您回复
    • @dogol 究竟是什么问题?可以分享吗?
    猜你喜欢
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2014-02-11
    • 2011-07-28
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多