CodeIgniter JQuery$.post

CodeIgniter JQuery$.post,codeigniter,.post,Codeigniter,.post,我正在尝试检查用户输入的名称是否已经存在于数据库中,并且正在使用AJAX进行检查。但是,如果数据库中确实存在该名称,则它永远不会返回true(我知道数据库中有哪些名称)。我只是想知道我做的是否正确 这是我的文本字段: <input type="text" name="name" id="name"/> <div id='check'></div> 这就是模型: function check_title() { $thi

我正在尝试检查用户输入的名称是否已经存在于数据库中,并且正在使用AJAX进行检查。但是,如果数据库中确实存在该名称,则它永远不会返回true(我知道数据库中有哪些名称)。我只是想知道我做的是否正确

这是我的文本字段:

<input type="text" name="name" id="name"/>
                <div id='check'></div>
这就是模型:

function check_title()
{
    $this->db->select('name');
    $this->db->from('products');
    $this->db->where('name', $this->input->post('name'));
    $result = $this->db->get();

    $rows = $result->num_rows();
    if($rows > 0)
    {
        return 0;
    }
    else
    {
        return 1;
    }
}

我想我知道问题是什么,控制器中的
$name
可能没有被识别?或者在
$.post
中传递的数据不正确,即密钥是否应该是数据库中的字段名?非常困惑,非常感谢您的帮助。

您需要实际响应控制器函数的值。控制器函数的返回值未被使用。

Hi Sam,是的,我已经尝试过了,但是当我输入一个不在数据库中的值时,我仍然会收到一条消息,说明标题已经在数据库中。$.post请求中的json对象有问题吗?我有一种奇怪的感觉,我传递给models方法的参数没有被读取。您是否在检查duplicate时清理标题值?它仍然可以使用
$this->input->post('title')
而不是
$\u post['title']
。您不仅需要回显结果,而且在控制器中不需要创建$name,只需调用模型中的函数并回显所需的结果
public function check()
{
    $name = $this->input->post('name');
    return $this->model->check_title();
}
function check_title()
{
    $this->db->select('name');
    $this->db->from('products');
    $this->db->where('name', $this->input->post('name'));
    $result = $this->db->get();

    $rows = $result->num_rows();
    if($rows > 0)
    {
        return 0;
    }
    else
    {
        return 1;
    }
}