<select multiple="multiple">
PHPで複数の選択肢を取得する必要があります。その後、POST
メソッドを使用して変数に入れ、少なくとも配列をエコーアウトして、変数$authors
に選択肢があることを確認しようとしますが、このエラーが出力されます
Warning: Invalid argument supplied for foreach() in C:\xampp\htdocs\ex\addBook.php on line 45
これが私のコードです:
<?php
include ("includes/connections.php");
$authors = $_POST["authors"];
foreach ($authors as $author)
{
echo $author;
}
?>
これが私がhtmlに持っている「複数選択」です:
<?php multiple("author_ID", "author_firstname", "author_lastname", "author", "author_lastname", "authors"); ?> <span style="font-size: 12px; color: #666;">(Keep down Ctrl for selecting multiple authors)</span>
ここに複数の関数があります:
<?php include ("includes/connections.php");
function multiple($intIdField, $strfNameField, $strlNameField, $strTableName, $strOrderField, $strNameOrdinal, $strMethod="asc") {
echo "<select multiple=\"multiple\" name=\"$strNameOrdinal\">\n";
$strQuery = "select $intIdField, $strfNameField, $strlNameField
from $strTableName
order by $strOrderField $strMethod";
$rsrcResult = mysql_query($strQuery);
while($arrayRow = mysql_fetch_assoc($rsrcResult)) {
$strA = $arrayRow["$intIdField"];
$strB = $arrayRow["$strlNameField"] . " " . $arrayRow["$strfNameField"];
echo "<option value=\"$strA \">$strB</option>\n";
}
echo "</select>";
}
?>
したがって、変数は配列であると推測し、$authors
少なくとも印刷することはできますが、すでに述べたように、これは起こりません。
データベースから取得された作成者は、問題なく正しく表示されています。問題は、「複数選択」リストから選択されたものをエコーアウトしたいということです。