将PHP/MySQLi结果显示为HTML表


Displaying PHP/MySQLi results as HTML table

我单击一个HTML按钮运行一个JS脚本,该脚本将日期标准(在页面的其他地方输入)发布到PHP页面,然后查询MySQLi数据库。我希望在自动生成的HTML表中显示结果,并且希望该表位于页面上的特定div中。我的HTML代码是:

<div id="buttonContainer">
    <input type="button" id="reportButton" value="Generate Report" onclick="generateReport();">
</div>  
<div id="displayTable">
</div>

我的JS代码是:

window.generateReport = function(){    
    $.post("PhotoTopTen.php", {
        startdate: startDate,
        enddate: endDate,
    });
}

我的PHP代码是:

<?php
$startdate = date('Y-m-d H:i:s',strtotime($_POST["startdate"]));
$enddate = date('Y-m-d H:i:s',strtotime($_POST["enddate"]));
$con = mysqli_connect("localhost","User","password","dbase");
$sql="SELECT Document, COUNT(*) as count FROM table WHERE event LIKE 'Photo%' GROUP BY Document ORDER BY count DESC LIMIT 10";
$result = mysqli_query($con,$sql);
$data = array();
while($row = mysqli_fetch_assoc($result)) {
    $data[] = $row;
};
$colNames = array_keys(reset($data))
echo "<table><tr>";
foreach($colNames as $colName) {
    echo "<th>$colName</th>";
}
echo "</tr>";
foreach($data as $row) {
    echo "<tr>";
    foreach($colNames as $colName) {
        echo "<td>".$row[$colName]."</td>";
    }   
    echo "</tr>";
}
echo "</table>";

?>

我知道MySQLi查询是有效的,因为我在phpMyAdmin中测试过它。我也知道我的错误是将HTML标记回显到JS文件(而不是HMTL页面),但我只是不知道如何以其他方式做到这一点。我尝试过在JS脚本标记中回显HTML,但似乎也不起作用。

您错过了在div中显示结果的机会。尝试如下:

$.post("PhotoTopTen.php", {startdate: startDate,enddate: endDate}, function( data ) {
     $( "#displayTable" ).html( data );
});