如果条件为true,则显示div



我以前问过这个问题,得到了答案,但我想做一些不同的事情。我正在创建一个社交网站,让人们互相发信息。如果opened列是== 0,我想用蓝色背景显示div。但是我现在只显示else列中的div,它是空白的。

因此,即使条件成立,背景色也会立即直接变为其他颜色,并且应该显示蓝色。有什么帮助吗?

public function getConvos () {
$userLoggedIn = $this->user_obj->getUsername();
$return_string = "";
$convos = array();
$query = $this->con->prepare('SELECT user_to, user_from, opened FROM messages WHERE
user_to = ? OR user_from = ? ORDER BY id DESC');
$query->bind_param("ss", $userLoggedIn, $userLoggedIn);
$query->execute();
$query_result = $query->get_result();
while ($row = $query_result->fetch_assoc()) {
$user_to_push = ($row['user_to'] != $userLoggedIn) ? $row['user_to'] : $row['user_from'];
if(!in_array($user_to_push, $convos)) {
array_push($convos, $user_to_push);
}
$color = ($row['opened'] == '0')  ? "#DDEDFF" : "";
}

foreach ($convos as $username) {
$user_found_obj = new User($this->con, $username);
$latest_message_details = $this->getLatestMessage($userLoggedIn, $username);

$return_string .= "<a href='messages.php?u=$username'><div class='user_found_messages'
style='background-color: $color;' >
<img src='" . $user_found_obj->getProfilePic() . 
"' style='border-radius: 5px; margin-right: 5px;'> 
". $username ."<br/>".
$latest_message_details . "</div></a>";
}
return $return_string;
}

.user_found_messages {
padding-left: 10px;
padding-top: 20px;
padding-bottom: 10px;
height: auto;
border-bottom: 1px solid #d9d9d9;
}
.user_found_messages:hover {
background-color: #e6ffff;
color: #669999;
}
.user_found_messages img {
height: 105px;
float: left;
margin-top: 1px; 
margin-right: 5px;
}

此问题是由于每次迭代中的$color覆盖引起的。

试试这个:

$i = 0;
while ($row = $query_result->fetch_assoc()) {
$user_to_push = ($row['user_to'] != $userLoggedIn) ? $row['user_to'] : $row['user_from'];
if(!in_array($user_to_push, $convos)) {
array_push($convos, $user_to_push);
}
$color[$i] = ($row['opened'] == '0')  ? "#DDEDFF" : "";
$i++;
}
foreach ($convos as $key => $username) {
$user_found_obj = new User($this->con, $username);
$latest_message_details = $this->getLatestMessage($userLoggedIn, $username);

$return_string .= "<a href='messages.php?u=$username'><div class='user_found_messages'
style='background-color: ". $color[$key]; ."' >
<img src='" . $user_found_obj->getProfilePic() . 
"' style='border-radius: 5px; margin-right: 5px;'> 
". $username ."<br/>".
$latest_message_details . "</div></a>";
}

最新更新