我试图在$ _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++; }?>
谁能看到我做错了什么?
谢谢!
答案 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++;
}