0

select 要素に PHP を設定する際に問題が発生しました。現在、データベースから取得した情報を使用して配列を作成しています。これは、記録保持のためにログブックにエントリを編集または挿入するために使用されます。

コードで使用される変数は、顧客番号と顧客名を処理します。

以下に概説する方法は、新しいエントリ (既存のエントリを編集する) ではない場合には完全に機能しますが、新しいエントリの場合 ($ID == 0) にはオプションが入力されません。

$ID = $_GET['ID'];
connectDB();
$mons = "SELECT * FROM mons ORDER BY mName ASC";
$mons = queryHashArray($mons);
disconnectDB();

<tr><td><select name="mID"> <?php
foreach($mons as $m) { 
  if($ID == 0) { ?>
      <option value="<?= $m['cusNum'] ?>"><?= $m['mName'] ?></option> <?php }
  else { ?>
      <option value="<?= $m['cusNum'] ?>" <?php if($record['mID'] == $m['cusNum']) echo "selected=\"selected\""; ?> ><?= $m['mName'] ?></option> <?php 
      } 
  }?> 
  </select></td>

どんな助けでも大歓迎です。私の問題に十分に具体的な例をオンラインで見つけることができませんでした。私が見落としていた小さくて単純なものであることを願っています.

アップデート:

以下は、既存のエントリの編集と新しいエントリのページ ソースです。

既存のエントリ: プライバシーの懸念により、オプションのテキストが「名前省略」に変更されました。

<tr><td><select name="mID">         <option value="3" selected="selected" >Name Omitted</option>        <option value="0"  >Name Omitted</option>           <option value="0"  >Name Omitted</option>

新規エントリー:

<tr><td><select name="mID"> <br />
<b>Warning</b>:  Invalid argument supplied for foreach() in <b>/home/folder/public_html/subfolder/file.php</b> on line <b>265</b><br />

</select></td>

$record はコードの別の場所で定義されており、編集中のレコードです。新しいレコードの場合、すべての値が '' に設定されます。

これは役に立ちますか?

4

1 に答える 1