-1

次の値の選択ボックスがあります。

<form action="ampcontrols.php" method="post" name="amp">
<select name="amp">
<option value="Fender '57 Deluxe","103">Fender '57 Deluxe</option>
<option value="Fender '59 Bassman","100">Fender '59 Bassman</option>
<option value="Fender '57 Champ","124">Fender '57 Champ</option>
<option value="Fender '65 Deluxe Reverb","83">Fender '65 Deluxe Reverb</option>
<option value="Fender '65 Princeton","106">Fender '65 Princeton</option>
<option value="Fender '65 Twin Reverb","117">Fender '65 Twin Reverb</option>
<option value="Fender Super-Sonic(Burn)","114">Fender Super-Sonic(Burn)</option>
<option value="British '60s","97">British '60s</option>
<option value="British '70s","121">British '70s</option>
<option value="British '80s","94">British '80s</option>
<option value="American '90","93">American '90s</option>
<option value="Metal 2000","109">Metal 2000</option>
</select>
<input name="submit" type="submit" value="Submit" />
</form>

2つの値を取得して、それらを独立して使用できるようにしたいと思います。これは、複数ではなく単一の選択ボックスです。選択した名前、つまりHTMLタグのFender '57 Deluxeをエコーし​​ても問題ありませんが、xmlファイルに個別に挿入するには、対応する番号を渡す必要があります。つまり、xmlの見出しとしてFender '57 Deluxeを選択し、IDとして103を選択します。MySQL、XMLで試しましたが、一度に渡すことができる値は1つだけです!! 私はおそらく単純なものが欠けています。乾杯

4

2 に答える 2

0

HTMLが無効です。

1つのオプションに複数の値を設定するには、配列またはオブジェクトを使用できます

配列の使用例

<select name="amp">
    <option value='["Fender &apos;57 Deluxe","103"]'>Fender '57 Deluxe</option>
</select>

PHPコード

<?php
$amp = json_decode($_POST['amp']);
$amp[0] // Fender '57
$amp[1] // 103
?>
于 2012-11-12T15:39:13.673 に答える
0

私が正しく推測している場合、各見出しはそのIDで識別され、HTMLとPHPでの処理を制御できます。この場合、見出しをPHP処理部分に戻す必要はありません。ユーザーが「103」の代わりに「Fender'59Deluxe」を選択できるように、HTMLで表示するだけで済みます。

したがって、PHPがどのIDがどのラベルに対応するかを認識していることを確認してください。そうすれば、ユーザーにラベルを表示し、PHP/XMLにIDを表示できます。

<?php
  // This array would typically be pulled from a database
  $amps = array(
    103 => "Fender '57 Deluxe",
    100 => "Fender '59 Bassman",
    124 => "Fender '57 Champ",
    83 => "Fender '65 Deluxe Reverb",
    106 => "Fender '65 Princeton",
    117 => "Fender '65 Twin Reverb",
    114 => "Fender Super-Sonic(Burn)",
    97 => "British '60s",
    121 => "British '70s",
    94 => "British '80s",
    93 => "American '90",
    109 => "Metal 2000"
  );

  // Check if the form has been submitted
  if (isset($_POST['amp'])) {
    $selected_amp = intval($_POST['amp']);
    if (array_key_exists($selected_amp, $amps)) {
      $label = $amps[$selected_amp];
      insert_xml($selected_amp, $label);
      // (todo: create function insert_xml)
    } else {
      // (todo: error handling)
    }
  }
?>
<form action="ampcontrols.php" method="post" name="amp">
  <select name="amp">
  <?php foreach ($amps as $id => $label): ?>
    <option value="<?php echo $id; ?>"><?php echo htmlentities($label); ?></option>
  <?php endforeach; ?>
  </select>
  <input name="submit" type="submit" value="Submit" />
</form>

ご覧のとおり、私はHTML内でPHPのforeach/endforeachを使用するのが好きです。もちろん、必要に応じて中括弧を使用できます。

于 2012-11-13T10:10:52.753 に答える