【发布时间】:2020-11-25 03:27:23
【问题描述】:
如果我的三元运算符返回为真,我试图显示一种颜色,如果返回为假,则显示另一种颜色。操作员正在工作,但有一件事情发生了。双引号内的代码显示而不是实际颜色本身。有谁知道如何解决这个问题?
$msg .= ($row['opened'] == '0') ? "background-color: #DDEDFF;" : "background-color: #000000;";
编辑!!! - 这些是我的$msg 变量出现的唯一时间
public function getLatestMessage ($userLoggedIn, $user2) {
$query = $this->con->prepare('SELECT body, user_to, opened, date FROM messages WHERE
user_to = ? AND user_from = ? OR user_to = ? AND user_from = ? ORDER BY id DESC LIMIT 1');
$query->bind_param("ssss", $userLoggedIn, $user2, $user2, $userLoggedIn);
$query->execute();
$query_result = $query->get_result();
$msg = ""; //to hold the message data
if ($row = $query_result->fetch_assoc()) { //don't need a while here because we've limited the query to one record
//Timeframe
$date_time_now = date("Y-m-d H:i:s");
$start_date = new DateTime($row['date']); //Time of post
$end_date = new DateTime($date_time_now); //Current time
$interval = $start_date->diff($end_date); //Difference between dates
if($interval->y >= 1) {
if($interval->y == 1)
$time_message = $interval->y . "yr"; //1 year ago
else
$time_message = $interval->y . "yrs"; //1+ year ago
}
else if ($interval-> m >= 1) {
if($interval->d == 0) {
$days = " ago";
}
else if($interval->d == 1) {
$days = $interval->d . "d";
}
else {
$days = $interval->d . "d";
}
if($interval->m == 1) {
$time_message = $interval->m . "month";
}
else {
$time_message = $interval->m . "months";
}
}
else if($interval->d >= 1) {
if($interval->d == 1) {
$time_message = "Yesterday";
}
else {
$time_message = $interval->d . "d ";
}
}
else if($interval->h >= 1) {
if($interval->h == 1) {
$time_message = $interval->h . "hr";
}
else {
$time_message = $interval->h . "hrs";
}
}
else if($interval->i >= 1) {
if($interval->i == 1) {
$time_message = $interval->i . "m";
}
else {
$time_message = $interval->i . "m";
}
}
else {
if($interval->s < 30) {
$time_message = "Just now";
}
else {
$time_message = $interval->s . " seconds ago";
}
}
$msg .= ($row['user_to'] == $userLoggedIn) ? "They said: " : "You said: ";
$msg .= ' ';
$msg .= $body = $row['body'];
$msg .= ' ';
$msg .= $time_message ;
$msg .= ' ';
$msg .= ($row['opened'] == '0') ? "background-color: #DDEDFF;" : "background-color: #000000;";
}
return $msg;
}
【问题讨论】:
-
你如何使用你的
msg变量? -
@Nicolas
$msg = ""; //to hold the message data -
Nicolas 的意思是我们看不到您在哪里使用该变量。也显示那部分代码。
-
在我看来,您正在将文字字符串附加到您的消息中。一种选择是添加一个带有
style属性的span标记,该属性将包含您的颜色字符串。 -
@Nicolas 我尝试使用
<p>标签,它仍然显示代码。跨度会有所不同吗?
标签: php css conditional-operator