2

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

这是我的文本字段:

<input type="text" name="name" id="name"/>
                <div id='check'></div>

这是 $.post 请求:

<script>
$(document).ready(function() {

$('#name').keyup(function(){
    isAvailable();

});

function isAvailable()
{
    var name = $('#name').val();

    $.post("controller/check", { name: name },
        function(result)
        {
            if(result == 1)
            {
                $('#check').html('It is available.');
            }
            else
            {
                $('#check').html('It's not available.');
            }

        });
}

});

这是在控制器中调用的函数:

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;
    }
}

我想我知道问题出在哪里,可能是$name控制器中的 没有被识别?或者传入的数据$.post不正确,即密钥应该是数据库中的字段名称?真的很困惑,希望能得到一些帮助,谢谢。

4

1 回答 1

2

您需要实际回显控制器函数中的值。不使用控制器函数的返回值。

于 2013-03-07T00:11:29.310 回答