【问题标题】:Sending MySQL Table via PHP using HTML form使用 HTML 表单通过 PHP 发送 MySQL 表
【发布时间】:2018-03-23 08:59:57
【问题描述】:

有人可以帮我修复我的代码吗?

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

HTML FORM:(此表单工作正常,我在这里没有发现任何问题)

<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>';

    }
}

Email:(我看过很多关于如何使用它的例子,但没有一个是关于从 HTML 表单中获取信息并将其放入 PHP Mail)

$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>

谢谢大家!

【问题讨论】:

  • 你能发布一些你遇到的错误吗?
  • 看看phpMailer。你需要包括图书馆。这是来自 html 联系表单 github.com/PHPMailer/PHPMailer/blob/master/examples/… 的示例
  • 我不知道如何将该信息显示到电子邮件脚本中。我认为我的 HTML 和 PHP 工作正常。
  • 字符串就是字符串就是字符串。如果要发送数据库结果,请将其分配给字符串而不是回显,然后将其插入到电子邮件的 html 中。
  • Ralph,我正在从 HTML 表单中获取值,并使用它们与 PHP 一起从 MySQL 中检索一些数据。但我不知道如何在邮件中显示它们。

标签: php html mysql forms email


【解决方案1】:
  1. 在脚本顶部定义一个变量

$table = '';


  1. 在您的循环中,在回声旁边,将字符串分配给一个变量:

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>"
;

  1. 完成后,将其添加到 $message 变量中:

 $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>";

【讨论】:

  • 非常感谢你们!你救了我的命呵呵:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-05
  • 2018-06-10
  • 1970-01-01
  • 2020-11-08
  • 2012-08-21
  • 1970-01-01
  • 2013-03-01
相关资源
最近更新 更多