Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.12.2017, 14:25   #1
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию Не выводится значение переменной

Здравствуйте!
Подскажите пожалуйста, из-за чего может не выводится значение переменной $class?
Отдельно выводится, а в блоке нет.
Из-за чего так может быть?
PHP код:
.....
    if(
$row["email_status"] == 'unconfirme' && $row["activation_phone"] == 'false'){$class 'status_unconfirme';}
            elseif(
$row["email_status"] == 'unconfirme' || $row["activation_phone"] == 'false'){$class 'status_not_fully_confirme';}
            elseif(
$row["email_status"] == 'confirm' && $row["activation_phone"] == 'true'){$class 'status_fully_confirme';}
            echo 
'
               <div class="block-clients" class="'
.$class.'" >
                  <p class="clients-datatime">'
.$row["datetime"].'</p>
                  <p class="clients-email">'
.$row["email"].'</p>
                  <p class="client-links"><a class="delete" rel="clients.php?id='
.$row["user_id"].'&action=delete" >Удалить</a></p>
</div> 
Женя32 вне форума Ответить с цитированием
Старый 26.12.2017, 14:43   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
Подскажите пожалуйста, из-за чего может не выводится значение переменной $class?
потому что Вы заполняете его не всегда, а только кода выполняются некоторые специфичные условия.
А эти условия могут и не выполнятся.

для начала попробуйте:
Код:
    $class = 'error: unknown condition in email_status or in activation_phone ';
    if($row["email_status"] == 'unconfirme' && $row["activation_phone"] == 'false'){$class = 'status_unconfirme';} 
            elseif($row["email_status"] == 'unconfirme' || $row["activation_phone"] == 'false'){$class = 'status_not_fully_confirme';} 
            elseif($row["email_status"] == 'confirm' && $row["activation_phone"] == 'true'){$class = 'status_fully_confirme';} 
            echo ' 
               <div class="block-clients" class="'.$class.'" > 
                  <p class="clients-datatime">'.$row["datetime"].'</p> 
                  <p class="clients-email">'.$row["email"].'</p> 
                  <p class="client-links"><a class="delete" rel="clients.php?id='.$row["user_id"].'&action=delete" >Удалить</a></p> 
</div>
потом - проверьте, почему Вы сравниваете $row["activation_phone"] со СТРОКАМИ 'false' / 'true'
Там точно строковые значения? И именно английскими маленькими буквами текст заполнен?
Проверяйте данные, проверяйте свой код, где заданы условия...


а вообще -
Как найти ошибку в своем коде?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2017, 15:11   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
потому что Вы заполняете его не всегда, а только кода выполняются некоторые специфичные условия.
А эти условия могут и не выполнятся.

для начала попробуйте:
Код:
    $class = 'error: unknown condition in email_status or in activation_phone ';
    if($row["email_status"] == 'unconfirme' && $row["activation_phone"] == 'false'){$class = 'status_unconfirme';} 
            elseif($row["email_status"] == 'unconfirme' || $row["activation_phone"] == 'false'){$class = 'status_not_fully_confirme';} 
            elseif($row["email_status"] == 'confirm' && $row["activation_phone"] == 'true'){$class = 'status_fully_confirme';} 
            echo $class.' 
               <div class="block-clients" class="'.$class.'" > 
                  <p class="clients-datatime">'.$row["datetime"].'</p> 
                  <p class="clients-email">'.$row["email"].'</p> 
                  <p class="client-links"><a class="delete" rel="clients.php?id='.$row["user_id"].'&action=delete" >Удалить</a></p> 
</div>
потом - проверьте, почему Вы сравниваете $row["activation_phone"] со СТРОКАМИ 'false' / 'true'
Там точно строковые значения? И именно английскими маленькими буквами текст заполнен?
Проверяйте данные, проверяйте свой код, где заданы условия...


а вообще -
Как найти ошибку в своем коде?
Условия нормально работают, я проверял! Переменная $class отдельно в echo нормально выводиться.
Еще, только что заметил, в коде написано так:
PHP код:
echo '
               <div class="block-clients" class="'
.$class.'" > 
а в браузере выводится вот так:
Код HTML:
<div class="block-clients">
			...
			   </div>
Второй класс, почему- то не выводится......
Женя32 вне форума Ответить с цитированием
Старый 26.12.2017, 15:44   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
а в браузере выводится вот так:
Цитата:
Сообщение от Женя32 Посмотреть сообщение
<div*class="block-clients" class="'.$class.'"*>
не многовато ли классов для одного div ?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2017, 15:50   #5
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
не многовато ли классов для одного div ?
А как тогда поступить, если нужно изменить цвет фона в зависимости от условия?
Женя32 вне форума Ответить с цитированием
Старый 26.12.2017, 16:08   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Женя32 Посмотреть сообщение
А как тогда поступить, если нужно изменить цвет фона в зависимости от условия?
понятия не имею.

но если Вам нужно одному элементу назначить НЕСКОЛЬКО классов, то согласно описанию (аттрибут class):
Цитата:
Описание
Задает стилевой класс, который позволяет связать определенный тег со стилевым оформлением. В значении допускается указывать сразу несколько классов, разделяя их между собой пробелом.
т.е.:
Код:
if(isset($class) && !empty($class)){
 echo '<div class="block-clients '.$class.'" >  ';
}
или
Код:
 echo '<div class="block-clients'.((isset($class) && !empty($class))?' '.$class:'').'" >  ';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.12.2017, 16:12   #7
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 621
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
понятия не имею.

но если Вам нужно одному элементу назначить НЕСКОЛЬКО классов, то согласно описанию (аттрибут class):


т.е.:
Код:
if(isset($class) && !empty($class)){
 echo '<div class="block-clients '.$class.'" >  ';
}
или
Код:
 echo '<div class="block-clients'.((isset($class) && !empty($class))?' '.$class:'').'" >  ';
Спасибо!
Женя32 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выводится значение переменной woodman02 PHP 3 03.03.2017 16:02
Python:из функции не выводится значение Борис_017 Python 1 20.10.2016 16:16
Как значение переменной передать другой переменной? - jQuery serauto79 JavaScript, Ajax 4 05.08.2015 17:03
Почему выводится такое значение? (Си) Vimork Помощь студентам 7 05.01.2014 23:40
Найти значение переменной y в зависимости от значения переменной х Rishi Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 11.05.2011 20:25