【发布时间】:2022-01-10 21:29:33
【问题描述】:
目前我有一个选择框,它正在从控制器类中填充其数据。截至目前,所有值都按预期正确填写,但firstname 有一些空值,我正在尝试添加一个三元运算符以将其替换为电子邮件。
这在我的控制器类中似乎不起作用,因为我把括号放错了。
这是我当前的代码:
public function getContacts($id){
$option = "<option value='0'>Select</option>";
$modelList = $this->listings_model->get_contact(array('contact_type'=>3),'firstname,lastname,email,refno');
foreach($modelList as $m){
$option .= "<option value='".$m['firstname']." ".$m['lastname']." - ".$m['refno']."' id='".$m['id']."'>".$m['firstname']." ".$m['lastname']." - ".$m['refno']."</option>";
}
echo json_encode($option);
}
我尝试了以下方法,但出现语法错误:
$option .= "<option value='"($m['firstname'].$m['lastname'] ? $m['firstname']." ".$m['lastname']." - ".$m['refno'] : $m['email'])"' id='".$m['id']."'>".$m['firstname']." ".$m['lastname']." - ".$m['refno']."</option>";
我想要实现的是:
value="<?php echo ($ow['firstname'].$ow['lastname']?$ow['firstname'].' '.$ow['lastname']:($ow['email']?$ow['email']:$ow['mobile'])).' - '.$ow['refno']; ?>"
【问题讨论】:
-
$m['firstname'].$m['lastname']是邪恶的。您应该只检查$m['firstname']的空值,而不是两者。 -
应该是
$option .= "<option value='".($m['firstname'] ? $m['firstname']." ".$m['lastname']." - ".$m['refno'] : $m['email'])."' id='".$m['id']."'>".$m['firstname']." ".$m['lastname']." - ".$m['refno']."</option>"; -
@OMiShah 好的,但现在如果我想按名字和姓氏检查怎么办。我实际上希望它看起来像这样:
($ow['firstname'].$ow['lastname']?$ow['firstname'].' '.$ow['lastname']:($ow['email']?$ow['email']:$ow['mobile'])).' - '.$ow['refno'];
标签: php html codeigniter conditional-operator