Rumah > Soal Jawab > teks badan
Saya menggunakan datefrom dan dateto untuk membuat menu lungsur turun dan kemudian memaparkan tarikh antara tarikh ini, tetapi ia tidak muncul dan saya terus mendapat mesej ralat ini dalam konsol.
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)
Ini skripnya:
<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>
Ini ialah fail 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); ?>
Saya mahu memaparkan baris dengan tarikh antara tarikh yang dipilih tetapi ralat terus muncul dalam log konsol dan jadual tidak dipaparkan
P粉3189281592023-11-02 08:17:14
Ralat berkaitan dengan ralat tindak balas kaedah ajax anda. Kod yang dihantar ajax
请求的结果。您应该在 php 文件中使用 echo json_encode($data);
.
$data = []; while ($row = mysqli_fetch_assoc($result)) { $data[] = $row; echo json_encode($data); }