Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Здравствуйте!
Подскажите пожалуйста, из-за чего может не выводится значение переменной $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, 15:43   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,904
Репутация: 5228
По умолчанию

Цитата:
Сообщение от Женя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, 16:11   #3
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 261
Репутация: 15
По умолчанию

Цитата:
Сообщение от 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, 16:44   #4
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,904
Репутация: 5228
По умолчанию

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

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

Цитата:
Сообщение от Женя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, 17:12   #7
Женя32
Форумчанин
 
Регистрация: 12.09.2008
Сообщений: 261
Репутация: 15
По умолчанию

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


19:32.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru