2016-01-04 2 views
0

Я нажимаю кнопку 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-скриптов, но это тоже не работает.

+0

Попробуйте это: 'window.generateReport = функция() { $ .post ("PhotoTopTen.php", { StartDate: StartDate, EndDate: EndDate, }, функция (данные) {$ ('# displayTable'). html (data);}); } ' – Rayon

+0

Спасибо, что помогает. Я вижу, как это делает ссылку с PHP на JS на HTML. Однако мой PHP-скрипт застревает в строке '$ colNames = array_keys (сброс ($ data)), и я получаю 500 Internal Server Error на моей консоли Chrome. – JulesGru

+0

Что он возвращает? – Rayon

ответ

0

Вы пропустили, чтобы показать результат в div. Попытка, как показано ниже:

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