Я нажимаю кнопку HTML для запуска сценария JS, который публикует критерии даты (введенные в другом месте на странице) на страницу PHP, которая затем запрашивает базу данных MySQLi. Я хочу отображать результаты в автоматически сгенерированной таблице HTML, и я хочу, чтобы эта таблица находилась в определенном div на странице. Мой HTML-код:Отображение результатов PHP/MySQLi в виде таблицы 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), но я просто не знаю, как это сделать другим способом. Я пробовал повторять HTML обратно в тегах JS-скриптов, но это тоже не работает.
Попробуйте это: 'window.generateReport = функция() { $ .post ("PhotoTopTen.php", { StartDate: StartDate, EndDate: EndDate, }, функция (данные) {$ ('# displayTable'). html (data);}); } ' – Rayon
Спасибо, что помогает. Я вижу, как это делает ссылку с PHP на JS на HTML. Однако мой PHP-скрипт застревает в строке '$ colNames = array_keys (сброс ($ data)), и я получаю 500 Internal Server Error на моей консоли Chrome. – JulesGru
Что он возвращает? – Rayon