1

概要

現在、PHPでPOSTデータに問題があります。2つの複数の選択ボックスがあります(1つは画面の左側に、もう1つは右側にあります)。

次に、左側のオプション要素にデータベースの要素を入力し、右側のオプションにデータベースのデータを入力します。ただし、POSTデータを印刷すると、右側の複数選択ボックスに入力した要素が(期待どおりに)投稿されません。

コード

      <form method="post" action="http://">
        <div class="left">
          <label for="left">Attributes to select:</label>
          <select size="5" name="allAtts" id="toSelect" multiple=""> 
            <option value="jay">jay</option>
            <option value="bill">bill</option>
          </select>
          <p><a href="#" class="btn add">Add</a></p>
        </div>
        <div class="right">
          <label for="right">Attributes to store:</label>
          <select size="5" id="selectedAtts" name="selectedAtts[]" multiple="">
            <option value="bob">bob</option>
            <option value="jim">jim</option>
            <option value="frank">frank</option>
          </select>
          <p><a href="#" class="btn remove">Remove</a></p>
        </div>
        <input type="submit" name="submit" value="Visualise!">
      </form>

私の問題

右側の複数選択ボックスのすべての要素をPOSTEDして、データベースに保存できるようにします。これには、デフォルトのオプション要素(データベースによって入力された要素)が含まれます。

さらなるアップデート

注:(ボタンとJavaScriptを使用して)左からアイテムを選択して右に移動すると、その特定のデータ(フォームの送信時)が投稿されます。そのデータだけでなく、右の複数選択のデフォルトオプションも必要です。

4

2 に答える 2

1

ドロップダウンのすべてのオプションを配列selectedAttsに渡す$_POST場合は、実際にそれらを選択する必要があります。したがって、selected各オプションに属性を追加します。

      <select size="5" id="selectedAtts" name="selectedAtts[]" multiple="">
        <option selected value="bob">bob</option>
        <option selected value="jim">jim</option>
        <option selected value="frank">frank</option>
      </select>

もちろん、(現在のコードのように)ユーザーがオプションの一部またはすべてを選択解除するのを止めるものは何もありません...

于 2013-03-02T19:29:25.897 に答える
0

投稿されたデータで右の複数選択ボックスを使用する代わりに、それらを入力非表示として印刷し、それを仕事に使用することもできます。ただし、私が提案している方法でデータを実装すると、上級ユーザーがデータを変更する可能性があることに注意してください。

于 2013-03-02T18:50:09.130 に答える