在echo中正确使用If语句?

时间:2012-12-12 08:51:45

标签: php html mysql

我有一个名为$position的变量,它具有从数据库中选择的值。 我在下拉菜单中显示$position值作为页面加载时的选定值时遇到问题。 $position变量确实回显了此代码之外的正确值。

我读到了关于三元运算符方法,所以我在这里使用了它而不是正常的IF语句,但它仍然不起作用。我的代码是否正确?我应该使用另一种方法吗?

由于

我的代码

$number = $_GET['id'];
$number = mysqli_real_escape_string($connect,$number);

$stmt = $connect->prepare("SELECT s_code, s_type, s_position, s_idno, s_firstnames, s_email, s_cellno FROM smco WHERE s_ainumber = ?") or die(mysqli_error());

$stmt->bind_param('s', $number);

$stmt->execute();

$stmt->bind_result($code, $type, $position, $idno, $name, $email, $cell);

$stmt->fetch();

$stmt->close();

echo "<td width=\"62%\" align=\"left\">
<p><b>Position:</b></p>
<select name=\"position\">
<option value=\"AQ\" (($position == 'AQ') ? \"selected='selected'\")>Account Queries</option>
<option value=\"KM\" (($position == 'KM') ? \"selected='selected'\")>Key Account Manager</option>
<option value=\"MD\" (($position == 'MD') ? \"selected='selected'\")>Managing Director</option>
<option value=\"RB\" (($position == 'RB') ? \"selected='selected'\")>Rebates</option>
<option value=\"BY\" (($position == 'BY') ? \"selected='selected'\")>Store Buyer</option>
<option value=\"OW\" (($position == 'OW') ? \"selected='selected'\")>Store Owner</option>
</select>
</td>";

6 个答案:

答案 0 :(得分:4)

echo '<option value="">' . (true ? 'true' : 'false') . '</option>';

在你的情况下:

echo "<option value=\"AQ\"" . (($position == 'AQ') ? ' selected="selected"' : '') . ">Account Queries</option>";

答案 1 :(得分:1)

你必须连接这样的字符串:

echo "foo is " . ($foo == true ? "true" : "false") . " whatever echo";

答案 2 :(得分:1)

我不确定我的问题是否正确,但你可以简化这个问题。

只需编写一个这样的函数:

function is_postion($value, $position){

    if($value == $position) echo 'selected="selected"';

    return;


}

然后简单地将它放在HTML中,而不是使用echo来完成整个事情。所以:

<option value="AQ" <?php is_position('AQ', $position); ?> >Account Queries</option>

答案 3 :(得分:1)

首先,您不需要将所有HTML包装到echo中。仅使用PHP作为动态部件就足够了。 其次,您将PHP代码放在字符串中。所以,它没有奏效。 第三,使用(expr)时? :(三元运算符)你错过了假分支。

尝试使用它。

   <td width="62%" align="left">
        <p><b>Position:</b></p>
        <select name="position">
        <option value="AQ"<?=$position == 'AQ' ? "selected='selected'" : ""?>>Account Queries</option>
        <option value="KM"<?=$position == 'KM' ? "selected='selected'" : ""?>>Key Account Manager</option>
        <option value="MD"<?=$position == 'MD' ? "selected='selected'" : ""?>>Managing Director</option>
        <option value="RB"<?=$position == 'RB' ? "selected='selected'" : ""?>>Rebates</option>
        <option value="BY"<?=$position == 'BY' ? "selected='selected'" : ""?>>Store Buyer</option>
        <option value="OW"<?=$position == 'OW' ? "selected='selected'" : ""?>>Store Owner</option>
        </select>
</td>

答案 4 :(得分:1)

<td width='62%' align='left'>
    <p><b>Position:</b></p>

    <select name='position'>
        <option value='AQ' <?php echo $position == 'AQ' ? 'selected' : '' ?>>Account Queries</option>
        <option value='KM' <?php echo $position == 'KM' ? 'selected' : '' ?>>Key Account Manager</option>
        <option value='MD' <?php echo $position == 'MD' ? 'selected' : '' ?>>Managing Director</option>
        <option value='RB' <?php echo $position == 'RB' ? 'selected' : '' ?>>Rebates</option>
        <option value='BY' <?php echo $position == 'BY' ? 'selected' : '' ?>>Store Buyer</option>
        <option value='OW' <?php echo $position == 'OW' ? 'selected' : '' ?>>Store Owner</option>
    </select>
</td>

答案 5 :(得分:1)

这对你有用:

    echo "<td width=\"62%\" align=\"left\">
<p><b>Position:</b></p>
<select name=\"position\">
<option value=\"AQ\"  ".(($position == "AQ") ? "Selected=selected" : "")." >Account Queries</option>
<option value=\"KM\" ".(($position == "KM") ? "Selected='selected'" : "")." >Key Account Manager</option>
<option value=\"MD\" ".(($position == "MD") ? "Selected='selected'" : "")." >Managing Director</option>
<option value=\"RB\" ".(($position == "RB") ? "Selected='selected'" : "")." >Rebates</option>
<option value=\"BY\" ".(($position == "BY") ? "Selected='selected'" : "")." >Store Buyer</option>
<option value=\"OW\" ".(($position == "OW") ? "Selected='selected'" : "").">Store Owner</option>
</select>
</td>";