php - 使用复选框的多个选定的 html 表行数据未发送到电子邮件地址
问题描述
我有一个从数据库中获取数据的 html 表。我想使用复选框选择一些行数据。我已将唯一值令牌设置为复选框,并且我想将检查的数据发送到电子邮件地址。问题是只有一行数据发送到邮件,多行数据没有发送
<form method="post" name="myForm">
<div class="col-lg-6">
<div class="form-group" style="margin-left: 2%;">
<div class="row">
<input type="email" class="col-lg-9 form-control" name="email" id="email" placeholder="Enter Email Address" required="">
<button type="submit" name="submit" class="col-lg-2 btn btn-primary"><i class="fa fa-envelope" style="margin-left: 10px;"></i> Send</button>
</div>
</div>
</div>
<table class="table table-bordered table-responsive" id="myTable">
<thead>
<tr>
<th>Select</th>
<th>Product</th>
<th>Subproduct</th>
<th>Product Name</th>
</tr>
</thead>
<tbody>
<?php
/*select query here*/
while($val = mysqli_fetch_assoc($retval))
{?>
<tr>
<td><input type='checkbox' name="checkbox[]" id="chk" value="<?php echo $val['tno']?>"></td>
<td><?php echo $val['product'];?></td>
<td><?php echo $val['subproduct'];?></td>
<td><?php echo $val['name'];?></td>
</tr>
<?php
}
?>
</tbody>
</table>
php代码如下
<?php
if(isset($_POST['submit'])){
$checkbox = $_POST['checkbox'];
$email = $_POST['email'];
//$count=1;
for($i=0;$i<count($checkbox);$i++){
$chk_id = $checkbox[$i];
$sql = "select * from newstock WHERE tno='$chk_id'";
$result = mysqli_query($link,$sql);
$val=mysqli_fetch_assoc($result);
$product=$val['product'];
$subproduct=$val['subproduct'];
$name=$val['name'];
$quantity=$val['pcs'];
$gwt=$val['gwt'];
$nwt=$val['nwt'];
$tno=$val['tno'];
$bookno=$val['bookno'];
$dealer=$val['dealer'];
$co='<tr>';
$co.= '<td>Product:'. $product. '</td>';
$co.= '<td>Subproduct: '. $subproduct . '</td>';
$co.= '<td>Name: '. $name. '</td>';
$co.= '<td>Pcs: '. $quantity. '</td>';
$co.= '<td>Gross Weight: '. $gwt . '</td>';
$co.= '<td>Net Weight: '. $nwt. '</td>';
$co.= '<td>Token No: '. $tno. '</td>';
$co.= '<td>Book No: '. $bookno. '</td>';
$co.= '<td>Dealer: '. $dealer . '</td>';
$co.= '</tr>';
}
$mailto = $email;
$mailSub = "Product Details";
require 'PHPMailer-master/PHPMailerAutoload.php';
$mail = new PHPMailer();
$mail ->IsSmtp();
$mail ->SMTPDebug = 0;
$mail ->SMTPAuth = true;
$mail ->SMTPSecure = 'ssl';
$mail ->Host = "smtp.gmail.com";
$mail ->Port = 465; // or 587
$mail ->IsHTML(true);
$mail ->Username = "kothariorg.group@gmail.com";
$mail ->Password = "kotharigroup@123";
$mail ->SetFrom("noreply@kothari.com");
$mail ->Subject = $mailSub;
$mail ->Body = $co;
$mail ->AddAddress($mailto);
if(!$mail->Send())
{
echo "Mail Not Sent";
}
else
{
header('location: dashboard.php');
}
}?>
解决方案
检查循环。每次迭代后
$co
$co 变量获取新值。
这是修复:
$co = '';
for($i=0;$i<count($checkbox);$i++){
$chk_id = $checkbox[$i];
$sql = "select * from newstock WHERE tno='$chk_id'";
$result = mysqli_query($link,$sql);
$val=mysqli_fetch_assoc($result);
$product=$val['product'];
$subproduct=$val['subproduct'];
$name=$val['name'];
$quantity=$val['pcs'];
$gwt=$val['gwt'];
$nwt=$val['nwt'];
$tno=$val['tno'];
$bookno=$val['bookno'];
$dealer=$val['dealer'];
$co .='<tr>';
$co.= '<td>Product:'. $product. '</td>';
$co.= '<td>Subproduct: '. $subproduct . '</td>';
$co.= '<td>Name: '. $name. '</td>';
$co.= '<td>Pcs: '. $quantity. '</td>';
$co.= '<td>Gross Weight: '. $gwt . '</td>';
$co.= '<td>Net Weight: '. $nwt. '</td>';
$co.= '<td>Token No: '. $tno. '</td>';
$co.= '<td>Book No: '. $bookno. '</td>';
$co.= '<td>Dealer: '. $dealer . '</td>';
$co.= '</tr>';
}
尝试替换此代码。
推荐阅读
- numpy - 类型对象“TypeSpecProto”没有属性“NDARRAY_SPEC”错误
- html - 导航栏不会变粘?
- django - Django Formset 新条目验证失败
- javascript - 在 get 方法中发送带有参数的对象
- c++ - 我想将 actionlistener 设置为我在 qt 小部件中动态创建的按钮
- azure - 监控 Azure 存储帐户中每个容器的大小/事务/带宽使用情况
- javascript - sm 屏幕上的卡片 bootstrap4 相互骑行
- binary - 分类问题,只有一类的标签
- angular - 在单元测试中模拟 NgControl 以访问验证器
- android - Android 设备收不到推送通知