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

まず、すべてのHTMLをエコーにラップする必要はありません。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

私があなたの質問を正しく理解しているかどうかはわかりませんが、これを単純化することができます。

次のような関数を書くだけです。

function is_postion($value, $position){

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

    return;


}

次に、全体にechoを使用するのではなく、HTML内に配置します。それで:

<option value="AQ" <?php is_position('AQ', $position); ?> >Account Queries</option>
于 2012-12-12T09:00:29.533 に答える
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 に答える
1

そのような文字列を連結する必要があります:

echo "foo is " . ($foo == true ? "true" : "false") . " whatever echo";
于 2012-12-12T08:57:55.650 に答える