1
我有一个<select multiple="multiple">
在php中获得多个选择。从那以后,我把它放在一个变量与POST
方法和我尝试至少呼应阵列,以确保我的变量$authors
有选择,但它打印此错误在MySQL表中插入多个选项
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
变量将是一个数组,我会很高兴至少打印,但正如我已经说过,这不会发生。
从数据库中提取的作者正确显示没有任何问题。事情是我想要从'选择多个'列表中选出的那些被回显出来。
的'$ authors'阵列没有被填充的某些原因。你真的应该检查这种情况,以防止发生这种错误。 –
如何从'
试试这个线程的答案:http://stackoverflow.com/questions/2407284/how-to-get-multiple-selected-values-of-select-box-in-php –