新しいエントリに同じフォームを使用し、トレーニングの詳細を編集するIm私は別のテーブルに保存されているトレーニングリストを持っています。特定のエントリを編集している間は、選択したエントリのデータをフォームに表示する必要があります。$_GET['act'] =="edit"
を使用してデータベースからの値を表示するか、新しいエントリの空のコントロールを表示します。 これで私はトレーニングセッションのために複数の研修生を選ぶことができる選択コントロールを持っています。編集中は、訓練生データベーステーブルを読んで、選択した訓練生を表示します。 私は全部で10人の従業員を雇っていますが、今は5人の従業員を選択しました。 私は5人の従業員を選択して、5人を未選択として表示しなければなりません。しかし、私はこれを以下のコードを使って行うと、私の「選択」コントロールには「選択された5人の従業員」と10人の従業員のすべてが選択されていないというオプションがあります。 状態:EXについてPHPで編集中に複数の選択肢で選択した値を反復せずに表示するには
<?php
try {
$sql = "SELECT * FROM enrollment WHERE enrollid = :cid";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":cid",intval($_GET['cid']));
$stmt->execute();
$enrollresults = $stmt->fetchAll();
} catch (Exception $ex) {
echo $ex->getMessage();
}
}
try {
$sql = "SELECT * FROM traineelist WHERE trainingid = :trid";
$stmt = $DB->prepare($sql);
$stmt->bindValue(":trid",$enrollresults[0]["enrollid"]);
$stmt->execute();
$trlistresult = $stmt->fetchAll();
}
catch (Exception $ex)
{ echo $ex->getMessage(); }
try {
$sql = "SELECT * FROM employees";
$stmt = $EMPDB->prepare($sql);
$stmt->execute();
$empresult = $stmt->fetchAll();
}
catch (Exception $ex)
{ echo $ex->getMessage(); }
?>
<div class="form-group">
<label for="tr" class="control-label col-md-2">Trainee</label>
<div class="col-md-4">
<select id="trainee" name="tr[]" multiple="multiple">
<?php
if(isset($_GET['act']) && $_GET['act']=="edit")
{ ?>
<?php foreach($trlistresult as $row1){ ?>
<option value="<?php echo $row1["trainee"]?>" selected="selected"><?php echo $row1["trainee"]?></option>
<?php } ?>
<?php foreach($empresult as $row){ ?>
<option><?php echo $row['first_name']?></option>
<?php } ?>
<?php
}
else
{
foreach($empresult as $row){ ?>
<option><?php echo $row['first_name']?></option>
<?php } }?>
</select>
</div>
</div>
I want like, it shows the default options with the selected value.
有効、無効 - 、(選択した)アクティブアクティブ非アクティブように「ステータス」制御番組を編集しながら私は、からの「アクティブ」を選択した場合。この重複を避けるには?
もっと精巧にしたい? –
編集中にどの変数に値が含まれていますか? – Apb
ちょうどそれは一般的に$ empresult foreachループは、両方で同じものとして他の部分の必要はありません。 – RJParikh