ユーザーが入力した名前がデータベースにすでに存在するかどうかを確認しようとしています。そのためにAJAXを使用しています。ただし、名前が実際にデータベースに存在する場合、trueが返されることはありません(DBに名前が存在するかどうかはわかります)。正しくやっているかどうか知りたいだけです。
これは私のテキストフィールドです:
<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
何らかの理由で正しくない、つまり、キーがデータベースのフィールド名であると想定されているということですか?本当に混乱していて、助けていただければ幸いです。