请帮我介绍如何使用codeigniter和jquery从数据库中获取最后一个插入的id。我想要的是在插入后获取最后插入的id。我正在使用jquery来插入数据。我不知道如何做到这一点。非常感谢。
SCRIPT
$('#add-tag').click(function () {
var lang = $('#lang').val();
var tag = $('#tag').val();
var data = {
tag: tag,
lang: lang
}
if (tag === '') {
$('.error').html('<h4><i class="glyphicon glyphicon-info-sign">' +
'</i> Field cannot be empty!</h4>').addClass('bounceIn').show();
$('.error').delay(3000).fadeOut();
} else {
$.ajax({
url: "<?= site_url('blog/add_tag'); ?>",
type: 'POST',
data: data,
success: function (result) {
//display message if successful
$('.message').html('<h4><i class="glyphicon glyphicon-ok">' +
'</i> Tag has been added</h4>').addClass('bounceIn').show();
$('.message').delay(3000).fadeOut();
$('#tag').val('');
$('#tags').append('<a class="tags animated fadeInDown">' +
'<span class="remove-tag" id="remove-tag' + lid + '">' +
'</span></span> ' + tag + '</a>');
window.setTimeout(function () {
location.reload();
}, 2000);
}
});
}
});
查看
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<div id="add-tag-form" class="display-none relative">
<div class="well well-sm">
<div class="row">
<div class="col-md-12 col-sm-12 col-xs-12">
<h5>Add Tag</h5>
<input type="text" id="tagLastID" class="form-control" placeholder="Tag Last ID" readonly>
<input type="hidden" id="lang" class="form-control" placeholder="Lang" required value="<?= $lang; ?>">
<input type="text" id="tag" class="form-control" placeholder="Tag" required>
<br />
<button id="add-tag" class="btn col-md-12 col-sm-12 col-xs-12">Add Tag</button>
<div class="text-center"><a id="close-tag">cancel</a></div>
</div>
</div>
</div>
</div>
<button id="add-tag-btn" class="btn col-md-12 col-sm-12 col-xs-12">Add Tag</button>
</div>
</div>
CONTROLLER
public function add_tag() {
$this->Mblog->addTag();
}
MODEL
public function addTag() {
$lang = $this->input->post('lang');
$tag = $this->input->post('tag');
$data = array(
'tags' => $tag,
'lang' => $lang
);
$this->blog->insert('tags', $data);
return $this->blog->insert_id();
}
答案 0 :(得分:1)
如果你问如何将数据从控制器返回到jQuery那么是的,这就是答案。
用此
替换您的控制器代码public function add_tag() {
$insert_id = $this->Mblog->addTag();
echo(json_encode(array("insert_id"=>$insert_id)));
}
echo的结果将出现在jQuery.ajax的成功中。
答案 1 :(得分:1)
添加返回控制器功能或回显结果如下:
public function add_tag() {
return $this->Mblog->addTag();
}
或强>
public function add_tag() {
echo json_encode(['data' => $this->Mblog->addTag()]);
exit;
}
然后尝试修改dump并查看ajax成功响应:
$.ajax({
url: "<?= site_url('blog/add_tag'); ?>",
type: 'POST',
data: data,
dataType: 'json', // this will convert your results to json by default
success: function (result) {
// You should get the json result
console.log(result.data);
// Your regular logic to handle result
},
fail: function(res) {
console.log(res); // will log fail results
}
});
试试这些并告诉我们这是否适合您。
答案 2 :(得分:1)
您已经从模型中返回了id,因此在您的控制器中,您唯一需要做的就是回显结果。
public function add_tag() {
echo $this->Mblog->addTag();
}
然后在你的jquery中result
将是你从控制器回应的内容。