我正在尝试通过POST将一些酒店的名称,代码和电子邮件地址发送到新页面,该页面将向已检查的酒店发送电子邮件。到目前为止,我真正想要做的是将数据发送到只有echo
s的新php。到目前为止我所做的是:
<form action='chior.php' method='post'>
<?php
$i = 0;
foreach($counter as $obj => $nr_rez) {
$nume_hotel = $hoteluri[$obj];
$localitate = $localitati[$obj]; //all this arranges the data from a sql query
$email = $emailuri[$obj];
$total_rez += $nr_rez;
$cprest = substr($cprest, 3, 10);
$parametri = "cp=$cprest&dstart=$data_start_af&dstop=$data_stop_af";
$email = str_replace(";", ";\n", $email);
echo "<tr class='mainRow'> <td> $i </td>
<td><input type='text' name='hotelul[$i][]' value='".$cprest."' readonly/> </td>
<td><a href='link.php?$parametri' target='_blank'>$nume_hotel</a></td>
<td> $localitate </td>
<td> $nr_rez </td>
<td><input type='text' name='hotelul[$i][]' value='". $email ."'/></td>
<td><input type='checkbox' id='$i' name='hotelul[$i][]'/></td>
</tr>";
$i++;
}
?>
<input type='submit'/> </form>
为了简洁起见,有一些我没有发布的页面(各种标签和css元素使页面看起来很漂亮),但它可以在我的最后工作。唯一的问题是我点击提交后发送到的页面 - chior.php,看起来像这个<?php echo $_POST['hotelul'];?>
,返回'Array'。我还尝试了<?php echo implode('/', $_POST['hotelul']);?>
,<?php echo implode('-', implode('/', $_POST['hotelul']));?>
,<?php echo $_POST['hotelul[][]']
,这几乎是我能想到的全部内容,但仍然没有用。有没有人有任何想法为什么那样以及如何解决这个问题?感谢。
答案 0 :(得分:0)
您正在使用:
<td><input type='checkbox' id='$i' name='hotelul[$i][]'/></td>
这意味着hotelul包含一个列表(数组)。如果您想保存单个值,请移除[]
;
当您希望name[]
成为列表时,使用$_POST['name']
sintaxis。像这样:
<input type="text" name="email[]" />
<input type="text" name="email[]" />
<input type="text" name="email[]" />
答案 1 :(得分:0)
更改
1)将name='hotelul[$i][]'
更改为name='hotelul[]'
2)所有input
名称均为hotelul
。更改为其他名称以避免歧义。
更新代码:
<form action='chior.php' method='POST'>
<?php
$i = 0;
foreach($counter as $obj => $nr_rez) {
$nume_hotel = $hoteluri[$obj];
$localitate = $localitati[$obj];
$total_rez += $nr_rez;
$cprest = substr($cprest, 3, 10);
$parametri = "cp=$cprest&dstart=$data_start_af&dstop=$data_stop_af";
$email = str_replace(";", ";\n", $emailuri[$obj]);
echo "<tr class='mainRow'>
<td> $i </td>
<td><input type='text' name='hotelul[]' value='".$cprest."' readonly/> </td>
<td><a href='link.php?$parametri' target='_blank'>$nume_hotel</a></td>
<td> $localitate </td>
<td> $nr_rez </td>
<td><input type='text' name='hotelul_email[]' value='". $email ."'/></td>
<td><input type='checkbox' id='$i' name='hotelul_chkbox[]'/></td>
</tr>";
$i++;
}
?>
<input type='submit'/>
</form>
<强> chior.php 强>
<?php
$checkedHotels = sizeof($_POST['hotelul_chkbox']);
for($i = 0 ; $i < $checkedHotels; $i++){
$checked_hotel_email = $_POST['hotelul_email'][$i];
//Write your mail function here to send mail to all checked hotels using `$checked_hotel_email`.
}?>