если еще простой вопрос для начинающих - PullRequest
2 голосов
/ 10 ноября 2011

Добрый день, ребята,

Я сделал замечательную функцию фаворитов с 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, показываются и $ любимый, и $ не любимый.Когда «Избранное» = 1, только $ «Избранное» отображается правильно.Конечно, это должен быть $ favourite OR $ Favourite.Я предполагаю, что проблема ясна и проста для вас, пожалуйста, помогите:)

Заранее спасибо

Ответы [ 5 ]

3 голосов
/ 10 ноября 2011

Проще использовать только одну переменную:

$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 голос
/ 10 ноября 2011

Если вы хотите проверить $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
0 голосов
/ 10 ноября 2011

Тот же код работает на меня, если я назначил $ Favorites = 0;или $ избранное = 1;

Вы также можете использовать, если еще

$ избранное = 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>';
}
0 голосов
/ 10 ноября 2011

Вы делаете переключение, поэтому вам нужна только одна переменная:

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;
0 голосов
/ 10 ноября 2011

Является ли $favorites целым числом?

В любом случае попробуйте использовать три знака равенства (===) или else вместо второго if:

if ( $favorites === 0 )
{
  // ...
}
else // or if ($favorites === 1)
{
  // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...