Php 选中表中每一行中的复选框以获取值并插入数据库
我正在使用我的页面的发送邮件功能。为了能够获得表中的值,我想在每行中添加一个复选框,该复选框可以勾选超过1行。然后,一旦通过按钮提交,它将被插入到数据库中。我不知道我的代码出了什么问题。请帮忙 下面是复选框:Php 选中表中每一行中的复选框以获取值并插入数据库,php,checkbox,pdo,Php,Checkbox,Pdo,我正在使用我的页面的发送邮件功能。为了能够获得表中的值,我想在每行中添加一个复选框,该复选框可以勾选超过1行。然后,一旦通过按钮提交,它将被插入到数据库中。我不知道我的代码出了什么问题。请帮忙 下面是复选框: echo "<td><input type='checkbox' name='checkb[".$row['ID']."]'></td>"; echo”“; 代码如下: function InsertEmailMessage() { fore
echo "<td><input type='checkbox' name='checkb[".$row['ID']."]'></td>";
echo”“;
代码如下:
function InsertEmailMessage() {
foreach ($_POST['checkb'] as $id => $val) {
if($val=='checked'){
$sql6 = "SELECT * FROM invalid_invoice WHERE ID='".$id."'";
$conn = dbConnect();
$stmt6 = $conn->prepare($sql6);
$stmt6->execute();
$data = $stmt6->fetchAll(PDO::FETCH_ASSOC);
$conn=null;
}
foreach ($data as $row6) {
$invnumb=$row6['Invoice_Number'];
$partnumb=$row6['Part_Number'];
$issue=$row6['Issues'];
$pic=$row6['PIC_Comments'];
$emailadd= $row6['PersoninCharge'];
$issuetype=$row6['Issue_Type'];
$createdate=$row6['Creation_Date'];
$site=$row6['Site'];
$vendor=$row6['Vendor_Name'];
$invdate=$row6['Invoice_Date'];
$po=$row6['PO'];
$rr=$row6['RR'];
$currency=$row6['Currency'];
$invamount=$row6['Invoice_Amount'];
$stat=$row6['Status'];
if($row6['Status']=="Open") {
$message = "<html><b>Issue Type: {$issuetype} </b><br><br>";
$message .= "<b>Creation Date: {$createdate} </b><br><br>";
$message .= "<b>Site: {$site} </b><br><br>";
$message .= "<b>Vendor Name: {$vendor} </b><br><br>";
$message .= "<b>Invoice Date: {$invdate} </b><br><br>";
$message .= "<b>Invoice Number: {$invnumb} </b><br><br>";
$message .= "<b>Part Number:</b><br>{$partnumb}<br><br>";
$message .= "<b>PO: {$po} </b><br><br>";
$message .= "<b>RR: {$rr} </b><br><br>";
$message .= "<b>Currency: {$currency} </b><br><br>";
$message .= "<b>Invoice Amount: {$invamount} </b><br><br>";
$message .= "<b>Issues:</b><br>{$issue}<br>";
$message .= "<b>Status: {$stat} </b><br><br>";
$message .= "<b>{$pic}<b><br>";
$message .= "</html>";
if(!empty($emailadd)) {
dbInsertEmailMessage($emailadd, "Invoice Number: {$invnumb} - {$issue}.", $message);
echo "<script language='javascript'>alert('Email sent to {$emailadd}')</script>";
}
}
}
}
}
}
function dbInsertEmailMessage($send_to, $subject, $message) {
$sql7 = "INSERT INTO email_queue (send_to, subject, message) VALUES (:send_to, :subject, :message)";
$conn = dbConnect();
$stmt7 = $conn->prepare($sql7);
$stmt7->bindParam(':send_to', $send_to);
$stmt7->bindParam(':subject', $subject);
$stmt7->bindParam(':message', $message);
$stmt7->execute();
$conn=null;
}
函数InsertEmailMessage(){
foreach($_POST['checkb']作为$id=>$val){
如果($val=='checked'){
$sql6=“从无效的发票中选择*,其中ID=”“$ID.””;
$conn=dbConnect();
$stmt6=$conn->prepare($sql6);
$stmt6->execute();
$data=$stmt6->fetchAll(PDO::FETCH_ASSOC);
$conn=null;
}
foreach($6行数据){
$invnumb=$row6[“发票编号”];
$partnumb=$row6['Part_Number'];
$issue=$row6['Issues'];
$pic=$row6['pic_Comments'];
$emailadd=$row6['PersoninCharge'];
$issuetype=$row6['Issue_Type'];
$createdate=$row6['Creation_Date'];
$site=$row6['site'];
$vendor=$row6['vendor_Name'];
$invdate=$row6[“发票日期”];
$po=$row6['po'];
$rr=$row6['rr'];
$currency=$row6['currency'];
$invamount=$row6[“发票金额”];
$stat=$row6['Status'];
如果($row6['Status']==“Open”){
$message=“问题类型:{$issuetype}
”;
$message.=“创建日期:{$createdate}
”;
$message.=“站点:{$Site}
”;
$message.=“供应商名称:{$Vendor}
”;
$message.=“发票日期:{$invdate}
”;
$message.=“发票编号:{$invnumb}
”;
$message.=“零件号:
{$partnumb}
”;
$message.=“PO:{$PO}
”;
$message.=“RR:{$RR}
”;
$message.=“货币:{$Currency}
”;
$message.=“发票金额:{$invamount}
”;
$message.=“问题:
{$issue}
”;
$message.=“状态:{$stat}
”;
$message.=“{$pic}
”;
$message.=“”;
如果(!empty($emailadd)){
dbInsertEmailMessage($emailadd,“发票号:{$invnumb}-{$issue}.”,$message);
回显“警报('Email发送到{$emailadd}')”;
}
}
}
}
}
}
函数dbInsertEmailMessage($send_to,$subject,$message){
$sql7=“插入电子邮件队列(发送对象、主题、消息)值(:发送对象、:主题、:消息)”;
$conn=dbConnect();
$stmt7=$conn->prepare($sql7);
$stmt7->bindParam(':send_to',$send_to);
$stmt7->bindParam(':subject',$subject);
$stmt7->bindParam(':message',$message);
$stmt7->execute();
$conn=null;
}
这一行似乎错了:
<td><input type='checkbox' name='checkb[".$row['ID']."]'></td>
这句话似乎错了:
<td><input type='checkbox' name='checkb[".$row['ID']."]'></td>
这种申报方式是错误的
echo "<td><input type='checkbox' name='checkb[".$row['ID']."]'></td>";
应该是这样的
<?
echo "<td><input type='checkbox' name='checkb[]' value='".$row['ID']."'></td>";
function InsertEmailMessage()
{
$checkb=$_POST['checkb'];
$TotalCheckbox=$sizeof($checkb);
for($i=0;$i<$TotalCheckbox;$i++)
{
$Selcheckb=$checkb[$i];
$sql6 = "SELECT * FROM invalid_invoice WHERE ID=$Selcheckb";
$conn = dbConnect();
$stmt6 = $conn->prepare($sql6);
$stmt6->execute();
$data = $stmt6->fetchAll(PDO::FETCH_ASSOC);
$conn=null;
}
.
.// Your rest of the code..
这种声明方式是错误的
echo "<td><input type='checkbox' name='checkb[".$row['ID']."]'></td>";
应该是这样的
<?
echo "<td><input type='checkbox' name='checkb[]' value='".$row['ID']."'></td>";
function InsertEmailMessage()
{
$checkb=$_POST['checkb'];
$TotalCheckbox=$sizeof($checkb);
for($i=0;$i<$TotalCheckbox;$i++)
{
$Selcheckb=$checkb[$i];
$sql6 = "SELECT * FROM invalid_invoice WHERE ID=$Selcheckb";
$conn = dbConnect();
$stmt6 = $conn->prepare($sql6);
$stmt6->execute();
$data = $stmt6->fetchAll(PDO::FETCH_ASSOC);
$conn=null;
}
.
.// Your rest of the code..
我正在使用php。我应该把var_dump($_POST)放在哪里;就在函数InsertEmailMessage(){
行之后,您可以放置:var\u dump($\u POST);return;
-通过这种方式,您可以检查复选框的名称和值是否与您期望的完全相同。尝试查看页面的源代码,可能var_转储被其他我正在使用的php隐藏。我应该将var_转储($_POST)放在哪里;就在函数InsertEmailMessage()行之后{
您可以放置:var\u dump($\u POST);return;
-通过这种方式,您可以检查复选框的名称和值是否与您期望的完全相同。尝试查看页面的源代码,可能var_转储被其他内容隐藏,但如何使用$Selcheckb?我应该将其插入何处?@KimlynTormes:我更新了我的答案。请仔细查看。因为,您的复选框声明了上的错误。我将其更正。并且,第一个函数将相应地工作。因为,我不知道您的数据库表/列,所以我无法编辑您的完整代码。但是,复选框代码我已更新。请检查。谢谢。@KimlynTormes:请让我知道您的工作进度。仍然没有在数据库中插入行。@KimlynTormes:您删除了 foreach($_POST['checkb']作为$id=>$val){/}
关于我的代码??谢谢,但是我如何使用$Selcheckb?我应该在哪里插入它?@KimlynTormes:我更新了我的答案。请检查一下。因为,你的复选框声明是错误的。我做了更正。第一个函数将相应地工作。因为,我不知道你的数据库表/列,所以我无法编辑你的完整代码。但是,请检查Box代码我已更新。请检查。谢谢。@KimlynTormes:请让我知道您的工作进度。仍然没有在数据库中插入行。@KimlynTormes:您删除了带有我代码的foreach($\u POST['checkb']as$id=>$val){/}
??
$checkb=$_POST['checkb'];
$TotalCheckbox=$sizeof($checkb);
for($i=0;$i<$TotalCheckbox;$i++)
{
echo $Selcheckb=$checkb[$i];
}
.
.
.
// Your code.
<?
echo "<td><input type='checkbox' name='checkb[]' value='".$row['ID']."'></td>";
function InsertEmailMessage()
{
$checkb=$_POST['checkb'];
$TotalCheckbox=$sizeof($checkb);
for($i=0;$i<$TotalCheckbox;$i++)
{
$Selcheckb=$checkb[$i];
$sql6 = "SELECT * FROM invalid_invoice WHERE ID=$Selcheckb";
$conn = dbConnect();
$stmt6 = $conn->prepare($sql6);
$stmt6->execute();
$data = $stmt6->fetchAll(PDO::FETCH_ASSOC);
$conn=null;
}
.
.// Your rest of the code..