0

私は自分用のフォームを使用して、MySQLデータベースにいくつかの値を配置しています。ただし、選択ボックスの操作方法がわかりません。

チェックできる選択ボックスが 8 つあり、それに基づいて 8 つの異なるテーブルに書き込みます。したがって、オプション 1、3、および 6 がチェックされている場合は、それらのテーブルに書き込む必要があります。

以下のコードはそれを画面に出力しますが、毎回異なる選択をしているため、私の配列は毎回異なって見えます。

<?php
$categorie= array_values($_POST['categorie']);

foreach($categorie as $key => $value)
{
  echo $value . "<br/>";
}
?>

これを行うための最良の方法は何ですか? 各値を変数に入れ、if-else ステートメントで作業しますか、それともより良い解決策がありますか?

4

2 に答える 2

0

forループ内でswitchステートメントを使用することを検討します。これには値が数値である必要があるため、 $_POST['category'] は数値の配列でなければなりません。次に、これを行うことができます:

<?php
    $category= array_values($_POST['category']);

    foreach($category as $key => $value){
        switch($value){
            case 1: mysqli_query("Insert to table 1 here"); break;
            case 2: mysqli_query("Insert to table 2 here"); break;
            case 3: mysqli_query("Insert to table 3 here"); break;
            case 4: mysqli_query("Insert to table 4 here"); break;
            case 5: mysqli_query("Insert to table 5 here"); break;
            case 6: mysqli_query("Insert to table 6 here"); break;
            case 7: mysqli_query("Insert to table 7 here"); break;
            case 8: mysqli_query("Insert to table 8 here"); break;
        }
    }
?>
于 2013-08-15T09:37:08.503 に答える
0

フォームに 2 つの選択ボックスがあるとします。

<form method="post" action="/file.php">
  <select name="fruit">
    <option value="apple">Apple</option>
  </select>
  <select name="vegetable">
    <option value="broccoli">Broccoli</option>
  </select>
</form>

このフォームは、値を次のように file.php に送信します。

<?php
foreach($_POST as $param => $value)
  switch($param) {
    case 'fruit':
      // $value is your fruit
      break;
    case 'vegetable':
      // $value is your vegetable
      break;
  }
于 2013-08-15T09:39:02.640 に答える