gpt4 book ai didi

php - codeigniter 中的 Like-Unlike 函数

转载 作者:行者123 更新时间:2023-11-28 23:12:32 26 4
gpt4 key购买 nike

我想在 codeigniter 中实现类似和不同的功能。我可以使用以下代码在普通的 php 中执行此操作,但我只是不明白为什么它在下面的 codeigniter 中不起作用是我的数据库表以及我的模型 View 和 Controller 。任何帮助都会得到帮助。谢谢。

帖子表

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

这是我的 View 文件

<li><a class="like-unlike" href="#" id="likeItem_{$item['post_id']}" onclick="likeItem({$item['post_id']})">Like</a></li>

这是我的 Controller “Post.php”

public function likeItem()
{
$this->usermodel->itemLike();
}

最佳答案

在您的数据库模式中,您提到了表 like_unlike 并且您正在将数据保存到表 like-unlike 中。此外,您将 purpose 列设置为强制性的,并且您没有在此处传递任何值:

$data = array(
"user_id" => $id,
"post_id" => $postId,
);

如果使用默认值,则不需要传递数据。您还需要记住,根据您的数据库架构,purpose 列仅包含整数值。除此之外,您还需要修改@JYoThI 提到的代码

关于php - codeigniter 中的 Like-Unlike 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45301202/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com