大家好,
我做了一个甜蜜的收藏函数与php mysql和ajax,它的工作很棒。现在我想在favorite = 0时显示"favorite",在favorite = 1时显示"unfavorite"
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>
问题是:当favorite = 0时,同时显示$favorite和$unfavorite。当favorite = 1时,只有$unfavorite被正确显示。当然,它应该是$favorite或$unfavorite。我想这个问题对你来说很清楚和简单,请帮助:)
Thanks in advance
只使用一个变量比较容易:
$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;
如果要检查$favorite
,则在控制语句中使用了错误的变量。此外,对于第二个if
,使用elseif
而不是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
$favorites
是整数吗?
无论如何尝试使用三个等号(===
)或else
代替第二个if
:
if ( $favorites === 0 )
{
// ...
}
else // or if ($favorites === 1)
{
// ...
}
你正在做一个切换,所以你只需要一个变量:
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;
同样的代码在我身上工作,如果我分配$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>';
}