2012-06-07 65 views
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变量将是一个数组,我会很高兴至少打印,但正如我已经说过,这不会发生。

从数据库中提取的作者正确显示没有任何问题。事情是我想要从'选择多个'列表中选出的那些被回显出来。

+0

的'$ authors'阵列没有被填充的某些原因。你真的应该检查这种情况,以防止发生这种错误。 –

+0

如何从'