0

チェックボックスの配列があります。

<input type="checkbox" name="selection[]"  value="move" /> 
<input type="checkbox" name="selection[]"  value="move2" /> 
<input type="checkbox" name="selection[]"  value="move3" /> 
<input type="checkbox" name="selection[]"  value="move4" /> 

選択したチェックボックスの数に応じて、対応する行数のテーブルが生成されます。

for($x=0; $x<$N; $x++)
{
    echo nl2br("<td><textarea name=art[] rows=10 cols=30></textarea>   </td><td><textarea name=science[] rows=10 cols=30></textarea></td></textarea></td><td><textarea name=method[] rows=10 cols=30></textarea></td><td><textarea name=criteria[] rows=10 cols=30></textarea></td></tr>"); 
}

毎回、対応する列を含むテーブル行がいくつ生成されるかわかりません。そのため、行配列の各セットを挿入するコードをどのように記述するかが問題です。私は試してみました

$optionsVal = implode(",", $data);

しかし、それは選択したオプションを保存するためにのみ機能し、生成されたテーブルの行と列には機能しません。誰でもこれを手伝ってくれます。前もって感謝します

4

1 に答える 1

1

わかりましたので、少しは理解できたと思いますが、質問を別の言葉で伝えたほうがよいかもしれません。

基本的に、私の理解では、不確実な (チェックボックスの数の境界内で) チェックボックスの数を受け入れているため、選択したチェックボックスごとに行が生成されます。

これらの生成された行を mySQL に保存する場合は、データをデータベースに戻す必要があります

$result = mysqli_query($query, $conn);
$row = mysqli_fetch_array($result);

これに似た $result を設定し、そこにチェック ボックスの値を保存する必要があります。この例では、エンド ユーザーが保存ボタンを押すと、チェック ボックスの値が変数に挿入されます。

if(isset($_POST["savebtn"]))
{
    //inserting the new information
    $id = $_POST[""];
    $name = $_POST[""]; 



    //iterate through each checkbox selected

foreach($_POST["checkbox"] as $loc_id)
{
  $query = "INSERT INTO table(ID, Loc_Code) VALUES('$id', '$loc_id')";
  $result = mysqli_query($query, $conn);
}


?>

これは別の例から取ったものですが、内破とはかけ離れています。最初にphp選択の結果を変数に保存してから、選択をループしてmySQLで行を割り当てる必要があります

アップデート:

さて、あなたは配列でそれらを取得しました、selction[] - これは良いことです。特定の値が選択されているかどうかを確認したい場合...

if (in_array("move2", $_POST['selection'])) { /* move2 was selected */}

次に、それを単一の文字列に入れたい-implodeメソッドで正しかった

echo implode("\n", $_POST['selection']);

次に、 foreach ループでエコーアウトします

foreach ($_POST['selection'] as $selection) {
     echo "You selected: $selection <br>";
 }
于 2013-02-12T14:13:56.763 に答える