2014-07-21 57 views
-4

呼应这是我的PHP代码:如果里面PHP

echo "<td><select name='Sucursal' > 
<option value=''>Seleccione sucursal</option> 
<option value='L1'>L1</option> 
<option value='L5'>L5</option> 
<option value='L6'>L6</option> 
<option value='PN'>PN</option> 
<option value='MA'>MA</option> 
</select></td>"; 

我“呼应”一个选择PHP内,但我希望把这个代码的每个选项里面的值:

<option value="Male" <?php if($Gender == "Male") echo "selected"; ?>>Male</option> 

我的问题是我不知道如何把它放在echo中,如果有人可以帮助我,我将不胜感激。

+7

然后,不要输出为单个单片字符串。分别输出每个'

回答

0

Ternary operator是你在找什么。

echo " 
<td> 
<select name='Sucursal' > 
    <option value=''>Seleccione sucursal</option> 
    <option ".($Sucursal == 'L1' ? 'selected' : '')." value='L1'>L1</option> 
    <option ".($Sucursal == 'L5' ? 'selected' : '')." value='L5'>L5</option> 
    <option ".($Sucursal == 'L6' ? 'selected' : '')." value='L6'>L6</option> 
    <option ".($Sucursal == 'PN' ? 'selected' : '')." value='PN'>PN</option> 
    <option ".($Sucursal == 'MA' ? 'selected' : '')." value='MA'>MA</option> 
</select> 
</td>"; 
+0

谢谢,这就是我一直在寻找的东西。 – heynow

4

这是一个更清洁的方法。构建您的选项数组,循环遍历它们以输出HTML,同时使用ternary operator输出选定的属性。

<?php 

// Setup the key/value pair using an array 
$opts = array(
    'L1' => 'L1', 
    'L2' => 'L2', 
    'L3' => 'L3' 
    // Syntax: 'Key' => 'Option Label' 
); 

echo '<select name="select">'; 

// Loop through the array and output each key/value pair as an <option> 
// Compare $Gender variable to each key in the loop, and output selected if so 
foreach ($opts as $key => $label){ 
    echo '<option value="' . $key . '"' . ($Gender == $key ? ' selected="selected"' : '') . '>' . $label . '</option>'; 
} 
echo '</select>';