0

我有一个名为的变量$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>";
4

6 回答 6

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

在你的情况下:

echo "<option value=\"AQ\"" . (($position == 'AQ') ? ' selected="selected"' : '') . ">Account Queries</option>";
于 2012-12-12T08:55:35.020 回答
1

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

echo "foo is " . ($foo == true ? "true" : "false") . " whatever echo";
于 2012-12-12T08:57:55.650 回答
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>
于 2012-12-12T09:00:29.533 回答
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>
于 2012-12-12T09:03:09.197 回答
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>
于 2012-12-12T09:14:14.303 回答
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>";
于 2012-12-12T09:14:21.607 回答