美好的一天,
我用php mysql和ajax做了一个甜蜜的收藏夹功能,而且效果很好。现在我想在最爱= 0时显示'最喜欢'并在最喜欢= 1时显示'不喜欢'
if ($favorites == 0) {
$favorite = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
}
if ($favorites == 1) {
$unfavorite = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}
并在行中将其回显为:
<div id="favorites">' .($favorite). ' ' .($unfavorite). '</div>
问题是:当收藏夹= 0时,会显示$ favorite和$ unfavorite。当favorite = 1时,只有$ unfavorite正确显示。当然它应该是$最喜欢的OR $ unfavorite。我认为这个问题很清楚,很简单,请协助:)
提前致谢
答案 0 :(得分:3)
只使用一个变量更容易:
$text = ''
if ($favorites == 0) {
$text = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
} else {
$text = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}
...
echo $text;
答案 1 :(得分:1)
如果要检查$favorite
,则在控制语句中使用了错误的变量。此外,对于第二个elseif
,使用if
而不是if
更好的编码习惯。还有一件事:管理一个结果变量更容易。
$output = "";
if ($favorite == 0) {
$output = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
}
elseif ($favorite == 1) {
$output = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}
...
echo $output; // Or whatever you want to do with your output
答案 2 :(得分:0)
$favorites
是整数吗?
无论如何尝试使用三个等号(===
)或else
而不是第二个if
:
if ( $favorites === 0 )
{
// ...
}
else // or if ($favorites === 1)
{
// ...
}
答案 3 :(得分:0)
您正在进行切换,因此您只需要一个变量:
if(empty($favourites)){
$fav_toggle = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
} else {
$fav_toggle = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}
echo $fav_toggle;
答案 4 :(得分:0)
如果我分配了$ favorites = 0,那么相同的代码正在为我工作;或$ favorites = 1;
你也可以使用if else
$ favorites = 1;
if ($favorites == 0) {
$favorite = '<a href="#" id="' .($id). '" class="favorite_button">Favorite</a>';
}
else if ($favorites == 1) {
$unfavorite = '<a href="#" id="' .($id). '" class="unfavorite_button">unFavorite</a>';
}