gpt4 book ai didi

php - 检查和/或设置按钮状态 mvc php

转载 作者:行者123 更新时间:2023-11-29 00:02:39 25 4
gpt4 key购买 nike

我是 php/mvc 的新手,正在尝试一个小型网站。

我想根据选择查询更改按钮的状态。这是一个简单的“收藏”切换按钮。查询将在我的数据库的“favourite”表中查找“isFav”字段(0 或 1)。

如果查询找到结果 (1),我希望按钮颜色为绿色(btn-成功),颜色为默认(btn-默认)如果不是(0)。

应该很简单,但我似乎无法理解。我想我对在我的 View 和模型之间传递变量感到困惑。

我的books_model.php代码如下

class BooksModel
{

public function isFav()
{
$book_id = $_GET['id']; // from url
$user_id=$_SESSION['user_id'];
$sql = "SELECT isFav FROM favourite WHERE book_id = :book_id AND user_id = :user_id AND isFav = 1";
$query = $this->db->prepare($sql);
$query->bindParam(':book_id', $book_id);
$query->bindParam(':user_id', $user_id);
$query->execute();

if ($query->rowCount() == 1) {
$css = 'btn-success';
echo $css; //for testing
} else {
$css = 'btn-default';
echo $css; // for testing
}
}
}

我的books.php Controller 如下;

class Books extends Controller
{

function itemView()
{
$itemView_model = $this->loadModel('Books');
$this->view->books = $itemView_model->itemView();
$this->view->render('books/itemView');
$itemView_model->isFav();
}
}

我的itemView.php按钮代码如下;

echo '<button class="btn '.$css.'"></button>';

页面上唯一打印的是 btn-success 或 btn-default(左上角)。每当我单击按钮时,它就会切换。因此,我假设我的查询有效。

对于我是新手的代码表示歉意,我非常感谢提供的任何帮助,即使是在正确方向上的一点。

最佳答案

试试这个:

public function isFav() {
(...)
if ($query->rowCount() == 1) {
$css = 'btn-success';
echo $css; //for testing
} else {
$css = 'btn-default';
echo $css; // for testing
}
return $css;
}

在您的 View 中:

echo "<button class=\"btn ".$itemView_model->isFav()."\"></button>";

原因:isFav() 方法中的变量 $css 在您的 View 中未知(变量的范围是 isFav() 方法)。
这一行:
$itemView_model->isFav();请求此函数的返回值,因此,很明显,该值必须返回才能可用。
您看到输出看似正确答案的原因是 echo 调用与 $css 变量在同一范围内。

关于php - 检查和/或设置按钮状态 mvc php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29035398/

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