2014-01-09 51 views
1

我有一个表单,我从数据库中提取数据并填写用户的所有字段以编辑现有记录。它看起来像这样当前设置的单选按钮:单选按钮上的三元逻辑PHP

<input type="radio" id="statusActive" value="1" name="status" <?php if ($departmentData->thresholdActive == "1"){ echo 'checked'; }else{ echo ''; } ?>> Active 

什么是三元逻辑的做法说:

如果POST是真的,我们的数据后其他使用数据库中的一个?

+1

如果你只有一个动作('echo'';'不起作用),使用三元运算符的意义是什么?用户常规'if()' –

+0

因此可以说选择A被标记在数据库中。当我把它拉出来时,我想预先检查选项A.但是,如果我选择选项B但不填写另一个字段,它将需要保留所有的发布数据,所以我不必再次填写全部 – SBB

+0

使用单选按钮,应该只设置一个组。在我看来,你真的在​​问如何为radio set的默认值(从数据库中获取)并用POST变量的内容覆盖它(如果存在的话)。如果是这样,我建议重新说明问题。你在效果之后,而不是一个特定的方法(它被称为[XY问题](http://mywiki.wooledge.org/XyProblem)) – Floris

回答

3
<input type="radio" 
     id="statusActive" 
     value="1" 
     name="status" 
     <?php echo ($departmentData->thresholdActive == "1") ? 'checked' : ''; ?> 
> 
0

使用以下

if ($departmentData->thresholdActive == "1") 
{ 
    echo 'checked'; 
} 
else 
{ 
    echo ''; 
} 

echo $departmentData->thresholdActive == "1" ? 'checked' : ''; 
0

“三元逻辑” 三元表达 - 你可能想

<?php echo ($departmentData->thresholdActive == "1")? 'checked':'';?> 

但是,如果你首先要检查POST是否为真,这样会更清洁mething像

(isset($_POST))?$_POST['index'] : $dbValue; 

'index'是指一个特定的交变量(我假定存在时POST设置;你没有指定是否检查特定的 POST变量,所以很难猜测);并假设你知道如何设置$dbValue“来自数据库的值”