我正在使用 datefrom 和 dateto 制作一个下拉菜单,然后显示这些日期之间的日期,但它没有显示,并且我不断在控制台中收到此错误消息。
VM652:1 Uncaught SyntaxError: Unexpected token '<', "<br /> <b>"... is not valid JSON at JSON.parse (<anonymous>) at Object.success (<anonymous>:18:30) at c (jquery-3.6.0.min.js:2:28327) at Object.fireWith [as resolveWith] (jquery-3.6.0.min.js:2:29072) at l (jquery-3.6.0.min.js:2:79901) at XMLHttpRequest.<anonymous> (jquery-3.6.0.min.js:2:82355)
这是脚本:
<script> // Add an event liste ner for the form submission document.querySelector('#submit-button').addEventLi stener('click', function() { // Prevent the default form submission behavior event.preventDefault(); // Get the selected values of the "fromdate" and "todate" dropdown menus var fromDate = $('#fromdate').val(); var toDate = $('#todate').val(); // Send the AJAX request to the PHP script $.ajax({ type: "POST", url: "functions/search-sales_function.php", data: { fromDate: fromDate, toDate: toDate }, success: function (response) { // Parse the JSON response var salesData = JSON.parse(response); // Loop over the sales data and insert it into the table for (var i = 0; i < salesData.length; i++) { var date = salesData[i]['date']; var sales = salesData[i]['total_sales']; $('#sales-table tbody').append(` <tr> <td>${date}</td> <td>${sales}</td> </tr>` ); } }, }); }); </script>
这是 php 文件:
<?php include "db_conn.php"; // Get the values of the "fromdate" and "todate" dropdown menus $fromDate = $_POST['fromdate']; $toDate = $_POST['todate']; // Check the connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } // Write a SELECT statement to get the sales data between the selected dates $sql = "SELECT date, SUM(sales) as total_sales FROM sales WHERE date BETWEEN '$fromDate' AND '$toDate' GROUP BY date ORDER BY date ASC"; // Execute the SELECT statement and fetch the results $result = mysqli_query($conn, $sql); // Loop over the results and add a row to the table for each date while ($row = mysqli_fetch_assoc($result)) { $date = $row['date']; $sales = $row['total_sales']; echo "<tr> <td>$date</td> <td>$sales</td> </tr>"; } // Close the connection mysqli_close($conn); ?>
我想显示日期在所选日期之间的行,但控制台日志中不断显示错误,并且表格未显示
P粉3189281592023-11-02 08:17:14
该错误与您的ajax方法的响应错误有关。该代码发送了 ajax
请求的结果。您应该在 php 文件中使用 echo json_encode($data);
。
$data = []; while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; echo json_encode($data); }