包含php变量的$ _POST []数组错误

时间:2010-07-19 19:26:09

标签: php post arrays implode

我试图在$ _POST []中内爆一个数组。我在循环中执行此操作,在~31个数组中搜索值... $ _ POST ['1'],$ _POST ['2'],$ _POST ['3']等。

我正在尝试这样做:

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++;

}

我收到以下错误:

警告:implode()[function.implode]:第15行/home/content/r/e/s/reslife4/html/duty/schedule.php中传递的参数无效

这是我创建$ _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++; }?>

谁能看到我做错了什么?

谢谢!

3 个答案:

答案 0 :(得分:2)

如果您将数组以外的其他内容作为第二个参数传递给内爆(例如,当没有选择选项时),您将收到警告。你可以有条件地内爆:

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

或强制转换为数组:

$names = implode(',', (array)$_POST['names_'.$i]);

答案 1 :(得分:0)

<select name="names[]" multiple="multiple">  
<option value="<?php echo($arr); ?>"><?php echo($arr); ?></option>  

<?php foreach($_POST['names'] as $key => $value):  
    echo $value;  
?>

答案 2 :(得分: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++;
}