【发布时间】:2017-12-31 06:08:58
【问题描述】:
我想在 codeigniter 中实现类似和不一样的功能。我可以使用以下代码在普通 php 中执行此操作,但我只是不明白为什么它在下面的 codeigniter 中不起作用是我的数据库表和我的模型视图和控制器。任何帮助都会得到满足。谢谢。
帖子表
CREATE TABLE `posts` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`content` text NOT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
相似和不同的表格
CREATE TABLE `like-unlike` (
`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`post_id` int(11) NOT NULL,
`purpose` int(2) NOT NULL,
`timestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
jQuery 文件
function likeItem(post_id)
{
if ($("#likeItem_" + post_id).text() == "Like")
{
$("#likeItem_" + postid).html('Unlike');
var purpose = "Like";
} else
{
$("#likeItem_" + post_id).html('Like');
var purpose = "UnLike";
}
$.ajax({
type: "POST",
url: "<?php echo base_url('posts/likes');?>",
data: "postId=" + postId + "&purpose=" + purpose,
success: function (data)
{
// do seomthing here with data
// console.log(data) --> to see data return or not
}
}
);
这是我的模型“Post_model.php”
public function itemLike() {
$id = $this->session->userdata('user_id');
$postId = $this->input->post('post_id');
$purpose = $this->input->post('purpose');
if ($purpose == "Like") {
// echo 'test';
// exit();
$data = array(
"user_id" => $id,
"post_id" => $postId,
);
$this->db->insert('like', $data);
} else {
echo 'failed';
}
}
这是我的视图文件
<li><a class="like-unlike" href="#" id="likeItem_{$item['post_id']}" onclick="likeItem({$item['post_id']})">Like</a></li>
这是我的控制器“Post.php”
public function likeItem()
{
$this->usermodel->itemLike();
}
【问题讨论】:
-
你检查日志了吗?
-
UnLike 什么时候出现?
-
当你的数据库被调用时,你正试图发布到
like-unlike:like_unlike -
你在插入前丢失了
purposeint(2) NOT NULL,在数组中 -
我的 chrome 崩溃了,所以我正在使用 safari,但我无法
标签: php jquery mysql ajax codeigniter