2017-10-11 79 views
1

有人可以帮我修复我的代码吗?通过PHP使用HTML表格发送MySQL表格

我想根据HTML表单检索我的数据库中的一些数据并通过电子邮件(PHP)发送。

HTML表单:(此表工作正常,我在这里看不到任何问题)

<form method="post" action="valid_tasks.php"> 

    <div class="form-group"> 
     <label for="mailTo">To:</label> 
     <select class="form-control" id="mailTo" name="mailTo"> 
      <?php echo showUsers(); ?> 
     </select> 
    </div> 

    <div class="form-group"> 
     <label for="statusTo">Task Status:</label> 
     <select class="form-control" id="statusTo" name="statusTo"> 
      <?php echo showStatus(); ?> 
     </select> 
    </div> 

    <input type="submit" name="submitMail" id="submitMail" class="btn btn-info" value="Send" style="margin-bottom: 20px;"> 

</form> 

PHP:(我使用此代码作为另一页上的功能,它似乎工作也没关系,这是一个有点不同,但它的工作原理)

<?php 

require_once('db.class.php'); 

$objDb = new db(); 
$link = $objDb->conecta_mysql(); 

if(isset($_POST['submitMail'])) 
    { 

    $status = $_POST['statusTo']; 
    $userMail = $_POST['mailTo']; 

    $id = $_SESSION['id']; 
    $username = $_SESSION['username']; 

    $query = "SELECT T.setor, T.taskWhat, T.taskWho, DATE_FORMAT(T.deadLine,'%d/%m/%Y') AS deadLine,"; 
    $query .= "T.taskStatus, U.username, U.email, S.descricao, S.abDescri"; 
    $query .= "FROM tarefas AS T LEFT JOIN status AS S ON T.taskStatus = S.abDescri "; 
    $query .= "LEFT JOIN users AS U ON U.username = T.taskWho "; 
    $query .= "WHERE T.taskWho = '$userMail' AND S.abDescri = '$status'"; 

    $result = mysqli_query($link, $query); 

while($row = mysqli_fetch_assoc($result)){ 

    $setor = $row['setor']; 
    $taskWhat = $row['taskWhat']; 
    $taskWho = $row['taskWho']; 
    $deadLine = $row['deadLine']; 
    $taskStatus = $row['taskStatus']; 
    $userAcao = $row['username']; 
    $emailAcao = $row['email']; 
    $statusDescri = $row['descricao']; 
    $statusAb = $row['statusAb']; 

    $setor = mysqli_escape_string($link, $setor); 
    $taskWhat = mysqli_escape_string($link, $taskWhat); 
    $taskWho = mysqli_escape_string($link, $taskWho); 
    $deadLine = mysqli_escape_string($link, $deadLine); 
    $taskStatus = mysqli_escape_string($link, $taskStatus); 
    $userAcao = mysqli_escape_string($link, $userAcao); 
    $emailAcao = mysqli_escape_string($link, $emailAcao); 
    $statusDescri = mysqli_escape_string($link, $statusDescri); 
    $statusAb = mysqli_escape_string($link, $statusAb); 

    echo 
    '<tr> 
     <td>'.$setor.'</td> 
     <td>'.$taskWhat.'</td> 
     <td>'.$deadLine.'</td> 
     <td>'.$taskWho.'</td> 
     <td>'.$statusAb.'</td> 
    </tr>'; 

    } 
} 

电子邮件:(我已经看到了很多关于如何使用它的例子,但他们都不是有关从HTML表单获取信息并将其放入PHP邮件中)

$to = $email; 
$subject = "Tarefas com status ".$status; 

$message = " 
<html> 
<head> 
<title>HTML email</title> 
<link rel='stylesheet' type='text/css' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'> 
</head> 
<body> 
<div class='container'> 
<center><h1>Hello, ".$username."!</h1></center> 
</div> 
     // I NEED TO PUT THIS INFO HERE 
</div> 
</body> 
</html> 

谢谢大家!

+0

您可以发布你遇到的一些错误? – ldrg

+0

看看phpMailer。你将需要包括图书馆。这里是一个例子,从一个HTML联系表格 https://github.com/PHPMailer/PHPMailer/blob/master/examples/contactform.phps –

+0

我不知道如何显示该信息到电子邮件脚本。我认为,我的HTML和PHP工作正常。 –

回答

0
  1. 在脚本顶端定义一个变量

$table = '';


  • 里面的循环中,旁边的回波,将字符串分配给一个变量:

  • echo 
    '<tr> 
        <td>'.$setor.'</td> 
        <td>'.$taskWhat.'</td> 
        <td>'.$deadLine.'</td> 
        <td>'.$taskWho.'</td> 
        <td>'.$statusAb.'</td> 
    </tr>'; 
    
    $table .= "" 
        . "<tr>" 
         . "<td>$setor</td>" 
         . "<td>$taskWhat</td" 
         . "<td>...</td>" 
        . "</tr>" 
    ; 
    

  • 一旦完成,将它添加到$消息变量:

  • $message = " 
    <html> 
    <head> 
    <title>HTML email</title> 
    <link rel='stylesheet' type='text/css' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css'> 
    </head> 
    <body> 
    <div class='container'> 
    <center><h1>Hello, $username!</h1></center> 
    </div> 
        $table 
    </div> 
    </body> 
    </html>"; 
    

    +0

    非常感谢你们!你救了我的命嘿嘿:) –