2010-07-19 45 views
0

我想在$ _POST []內爆數組。我在一個循環內搜索〜31個數組中的值... $ _ POST ['1'],$ _POST ['2'],$ _POST ['3']等。

I我試圖用做到這一點:

while($i <= $_SESSION['daysInMonth']){ 

$month = $_SESSION['month']; 
$day = $i; 
$names = implode(',',$_POST['names_'.$i]); 
$region = $_SESSION['region']; 
$date = date("Y").'-'.$month.'-'.$day; 

echo("$names"); 

$i++; 

}

我收到以下錯誤,但:

警告:破滅()[function.implode]:傳入的參數無效的/ home /內容/ r/e/s/reslife4/html/duty/schedule.php on line 15

這是我如何創建$ _ POST []變量:

<?php $i=1; while($i <= $daysInMonth){?> 
      <table align="center" style="width: 435px"> 
       <tr> 
        <td class="style1"><p><select name="names_<?php echo($i); ?>[]" multiple="multiple"> 
        <?php foreach($email_array as $arr){ ?> 
         <option><?php echo($arr); ?></option> 
        <?php } ?> 
        </select></p></td> 
       </tr> 
      </table> 
<?php $i++; }?> 

有人能看到我在做什麼錯?

謝謝!

回答

2

如果您傳遞除數組之外的其他內容作爲implode的第二個參數(例如,未選擇任何選項時),您將收到警告。您可以有條件地破滅:

if (!empty($_POST['names_'.$i])) 
// implode 

或強制轉換爲數組:

$names = implode(',', (array)$_POST['names_'.$i]); 
0
<select name="names[]" multiple="multiple"> 
<option value="<?php echo($arr); ?>"><?php echo($arr); ?></option> 

<?php foreach($_POST['names'] as $key => $value): 
    echo $value; 
?> 
0
while($i <= $_SESSION['daysInMonth']){ 
    $names = (array)$_POST['names_'.$i]; 
    $month = $_SESSION['month']; 
    $day = $i; 
    $names = implode(',',$names); 
    $region = $_SESSION['region']; 
    $date = date("Y").'-'.$month.'-'.$day; 

    echo("$names"); 

    $i++; 
}